-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathregs.yaml
3879 lines (3834 loc) · 104 KB
/
regs.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Resources:
MEM 0x0000_0000:
Name: Unmapped
End: 0x0000_00FF
MEM 0x0000_0100:
Name: Send Ring 1 RCB
End: 0x0000_010F
MEM 0x0000_0110:
Name: Send Ring 2-16 RCB
End: 0x0000_01FF
MEM 0x0000_0200:
Name: RX Return Ring 0 RCB
End: 0x0000_020F
MEM 0x000_0210:
Name: RX Return Ring 1 RCB
End: 0x0000_021F
MEM 0x000_0220:
Name: RX Return Ring 2 RCB
End: 0x0000_022F
MEM 0x000_0230:
Name: RX Return Ring 3 RCB
End: 0x0000_023F
MEM 0x000_0240:
Name: VRQ RX Return Ring RCBs 4-16
End: 0x0000_030F
MEM 0x0000_0B50:
Name: Software Gencom
End: 0x0800_0F4F
Notes: |
This memory area is easily accessed by the host via the memory window,
due to being in the low address range. It is used for driver-bootcode
communication. See the GEN resources defined herein for the details.
MEM 0x0000_0F50:
Name: Unmapped
End: 0x0000_3FFF
MEM 0x0000_4000:
Name: Send RCB0 NIC Addr
End: 0x0000_400F
MEM 0x0000_4010:
Name: Unmapped
End: 0x0000_FFFF
MEM 0x0001_0000:
Name: RX MBUF
End: 0x0001_9FFF
MEM 0x0001_A000:
Name: Unmapped
End: 0x0001_FFFF
MEM 0x0002_0000:
Name: SBD Cache
End: 0x0002_3FFF
MEM 0x0002_4000:
Name: Std RBD Cache
End: 0x0002_83FF
MEM 0x0002_8400:
Name: Jumbo RBD Cache
End: 0x0002_C7FF
MEM 0x0002_C800:
Name: TX MBUF
End: 0x0002_3BFF
MEM 0x0003_3C00:
Name: Unmapped
End: 0x0003_FFFF
MEM 0x0004_0000:
Name: RX Std Prod RCB0 NIC Addr
End: 0x0004_000F
MEM 0x0004_4400:
Name: RX Jumbo Prod RCB0 NIC Addr
End: 0x0004_440F
MEM 0x0004_4410:
Name: Unmapped
End: 0x00FF_FFFF
MEM 0x0800_0000:
Name: Bootcode
End: 0x0800_6FFF
Type: RWX
Source: Guessed
Notes: |
Bootcode is loaded and executed from here. The end of this range is used
for the stack (initial SP=0x0800_7000). End address guessed based on
initial stack pointer. This is "unmapped" according to the manual.
Stage1 code is usually loaded at 0x0800_3800, with stage2 code
usually being loaded at 0x0800_0000.
This area is unusual because it can handle both load/stores and
instruction fetches. All known other regions are either read/write only
(e.g. the packet buffers) or execute only (e.g. the boot ROM).
MEM 0x4000_0000:
Name: RX CPU Boot ROM
End: 0x4007_FFFF
Type: XO
Notes: |
The RX CPU reset vector is the start of this ROM, 0x4000_0000.
Words cannot be loaded from this region; only the CPU's instruction fetch
hardware can load from this region. Halt the CPU and use
REG_RX_RISC_PROGRAM_COUNTER and REG_RX_RISC_CUR_INSTRUCTION to inspect
the contents of this region.
MEM 0xC000_0000:
Name: Device Registers
End: 0xC000_7FFF
Notes: |
This region provides the RX CPU with access to the same registers
accessed by the host. For example, 0xC000_362C is REG_STATUS. This range
is used by bootcode to inspect and modify the device registers.
MEM 0xC001_0000:
Name: APE Registers
End: 0xC001_3FFF
Notes: |
APE control registers.
MEM 0xC001_4000:
Name: APE SHM
End: 0xC001_7FFF
Notes: |
APE shared memory range. This is used by the RX CPU to communicate with
the APE. There is one such range for each function, and the APE can
address each one independently, while each RX CPU has its shared memory
region mapped here and cannot see the shared memory regions of other
functions. (For reference, in the APE memory space, this is mapped at
`0x6022_0000 + f*0x1000`, where f is the function number.)
MEM 0xC001_8000:
Name: APE Registers II
End: 0xC001_8FFF
Notes: |
Seems to be more APE registers. Includes lock fields which were moved
from APE Registers. Probably an extension of the APE Registers block when
they ran out of room. End address is guessed. This is the "peripheral"
block and includes functions such as a UART (probably for debug/not
connected in production), the SMBus device, the NC-SI RGMII interface to
the BMC, etc., as well as lock registers seemingly to allow arbitration
between RX CPUs, the APE, and a host driver, etc.
MEM 0xC001_9000:
Name: Management Filters
End: 0xC001_93FF
Notes: |
Specified in manual. Contents and purpose unknown. End address is guessed
based on standard register block size. Never observed and I'm not
entirely convinced this is still there, it could be vestigial and
erroneously left in the manual. (APE has been observed configuring
management filter-like things via another block specific to the APE
memory space, so this seems like an APE responsibility now.)
MEM 0xC002_8000:
Name: APE Peripherals
End: 0xC002_FFFF
Source: Guessed
Notes: |
Need to check the diag tools again to see if this is right. End address
is randomly chosen. Peripherals are thought to include a UART. These
are old notes, isn't this at 0xC001_8000 above?
MEM 0xC003_0000:
Name: APE Scratchpad
End: 0xC003_6FFF
Notes: |
Purpose unknown. Not to be confused with the APE event scratchpad used to
send messages to the APE, which uses the APE SHM area. Does this even
still exist? Not proven, likely vestigial.
MEM 0xC003_7000:
Name: Unmapped
End: 0xC003_7FFF
Notes: |
Unknown.
MEM 0xC003_8000:
Name: RX CPU ROM Slave Access
End: 0xC003_9FFF
Notes: |
Purpose unknown. Doesn't seem to be available.
GEN 0x0000:
Name: Firmware Mailbox
Notes: |
This is set to BOOTCODE_READY_MAGIC to indicate to the host driver
when the bootcode is up and has finished initialising the device,
and DRIVER_READY_MAGIC by host drivers when they come up.
GEN 0x0004:
Name: Data Sig
Notes: |
Not sure if this is used. Set to DRIVER_READY_MAGIC by the RX CPU
during initialisation.
GEN 0x0008:
Name: Cfg
Bits:
0-1: "From bits 0:1 of GEN_CFG_HW, believed to be voltage source setting"
2-3:
Name: "LED Mode"
Values:
0: MAC
1: PHY1
2: PHY2
4-5:
Name: "PHY Type"
Values:
0: Unknown
1: GPHY
2: SERDES
6: WOL Enable
7: "ASF Enable (/MGMT FW Enable), nowadays APE Enable"
8:
Name: "EEPROM Write Protect (likely vestigial)"
TG3: EEPROM_WP
9: Reverse N-way
10: WOL Limit 10M
12: Mini-PCI
14: Fiber WOL
16: PXE Expansion ROM Enable
17: Link Idle Power Mode Enable
19: Disable Power Saving
20: No GPIO2
21: APE Enable
22-31: Not used (0)
Notes: |
Rather a hodgepodge mongrel field of various configuration bits. It
aggregates various other configuration fields, many of which are in
GEN_CFG_FEATURE and GEN_CFG_HW, as loaded from NVM. Look at those fields
for documentation on the bitfields of this word.
GEN 0x000C:
Name: Version
Notes: |
Unusual 16-bit field.
GEN 0x0024:
Name: PHY ID
Notes: |
Can be 0x5A5A_5A5A to indicate that this field is invalid; otherwise,
it is set to the MII PHY ID value.
GEN 0x00B0:
Name: ASF Status Mailbox
TG3: NIC_SRAM_FW_ASF_STATUS_MBOX
Notes: |
Sometimes set to BOOTCODE_READY_MAGIC.
GEN 0x00B4:
Name: Firmware Driver State Mailbox
Values:
"0x0000_0001": Start
"0x8000_0001": Start Done
"0x0000_0002": Unload
"0x8000_0002": Unload Done
"0x0000_0003": WOL
"0x0000_0004": Suspend
GEN 0x00B8:
Name: Firmware Reset Type Mailbox
Notes: TODO
GEN 0x00BC:
Source: Unknown
Notes: |
Set to 0xFEFE_0009 at S2 start. Possibly boot progress indicator.
Upper 16 is always 0xFEFE, possible validity indicator. Observed
lower16 values:
8
9 - Stage2 start
GEN 0x00C4:
Name: MAC Address High Mailbox
GEN 0x00C8:
Name: MAC Address Low Mailbox
GEN 0x00D8:
Source: Unknown
Bits:
0:
Name: Skip Main Loop Init
Notes: |
Name is a guess.
2:
Name: Force WOL
Notes: |
Name is a guess. Forces power down of some parts of the chip in
stage2 init.
4:
Name: No Modify Miscellaneous Control
Notes: |
Name is a guess. If set, stage2 will not modify
REG_MISCELLANEOUS_LOCAL_CONTROL.
7:
Notes: |
Indicates code already loaded. Seems related to fastboot.
Notes: |
Field names are guessed. Possibly fastboot related.
GEN 0x01DC:
Source: Unknown
Notes: |
Unknown. Some information from REG_CHIP_ID.
GEN 0x01E0:
Name: WOL Mailbox
Values:
0x474C_0000: Signature
0x0000_0001: Driver State Shutdown
0x0000_0002: Driver WOL
0x0000_0004: Set Magic Packet
Notes: |
Register manual states "recommended value" is 0x474C_0000.
GEN 0x01E4:
Name: Cfg Feature
Notes: Set from NVM on a per-function basis.
Bits:
0: WOL Enable
1:
Name: PXE Enable
Notes: Controls whether expansion ROM is searched for by bootcode.
2-5:
Name: PXE Speed
Unobserved: true
Values:
0: Autonegotiate
1: 10M Half Duplex
2: 10M Full Duplex
3: 100M Half Duplex
4: 100M Full Duplex
5: 1000M Half Duplex
6: 1000M Full Duplex
6:
Name: Force PCI Mode
Unobserved: true
Notes: |
From QLMAPI. If not set, autodetect. Probably vestigial field.
7:
Name: ASF Enable
Notes: |
Setting this causes MII not to be initialized at end of stage1
and MII/EMAC is not initialized in stage2.
8-11:
Name: PXE BAR Size
Values:
0: 64 KiB
1: 128 KiB
2: 256 KiB
3: 512 KiB
4: 1 MiB
5: 2 MiB
6: 4 MiB
7: 8 MiB
8: 16 MiB
Notes: Expansion ROM size.
12:
Name: Disable Setup Message
Notes: |
If set, PXE ROM will not prompt user to press a key at boot to
enter configuration tool.
13:
Name: Hotkey Option
Notes: |
Controls whether hotkey to enter configuration tool from PXE
option ROM is Ctrl+S or Ctrl+B.
14-15:
Name: PXE Bootstrap Type
Unobserved: true
Values:
0: BBS
1: INT 18h
2: INT 19h
3: Disable PXE
16-19:
Name: PXE Message Timeout
Unobserved: true
Notes: |
Timeout in seconds during PXE setup prompt during PXE option ROM.
20-21:
Name: PXE Boot Protocol
Unobserved: true
Values:
0: PXE
1: RPL
2: BOOTP
Notes: |
Used by PXE Option ROM.
22:
Name: LOM Design
Notes: |
Set if the controller is used in a LAN-on-Motherboard design;
that is, if the controller is not on an expansion card.
Setting this causes the LSB of unknown REG 0x6550 to be set.
23-24:
Name: VAUX Cutoff Delay
Unobserved: true
Values:
0: 250ms
1: 150ms
2: 50ms
3: 0ms
25:
Name: WOL Limit 10
Unobserved: true
Notes: |
If set, WOL speed must be limited to 10M only. Else 100M is allowed for WOL.
26:
Name: Link Idle
Notes: |
Sets `REG_CPMU_CONTROL__LINK_IDLE_POWER_MODE_ENABLE`.
Long ago, bits 26:27 were "driver WOL enable". Back then, 0=WOL Disable,
1=Magic Packet WOL, 2=Interesting Packet WOL, 3=Both.
27:
Unobserved: true
Notes: |
See bit 26.
28:
Name: Cable Sense
Unobserved: true
29:
Name: MBA VLAN Enable
Notes: |
Enables VLAN support in PXE agent.
30:
Name: Link Aware Power Mode
Source: Guessed
Notes: |
Appears to be; sets `REG_CPMU_CONTROL__LINK_AWARE_POWER_MODE_ENABLE`.
31:
Name: Link Speed Power Mode
Notes: |
Sets `REG_CPMU_CONTROL__LINK_SPEED_POWER_MODE_ENABLE`.
GEN 0x01E8:
Name: Cfg Hardware
Notes: Set from NVM on a per-function basis.
Bits:
0-1:
Name: Voltage Source
Values:
0: 1.3V
1: 1.8V
Notes: Not sure if this is still used, values given are long ago.
2-3:
Name: Legacy LED Control
Notes: |
If `GEN_CFG_HW__SHASTA_EXT_LED__LEGACY`, the `REG_LED_CONTROL__LED_MODE`
field is set from this field.
4-5:
Name: PHY Type
Unobserved: true
Notes: Long ago. Probably vestigial. Unknown.
6:
Name: Forced Max PCI Retry
Unobserved: true
Notes: Long ago. Almost certainly vestigial. Unknown.
7-9:
Name: Max PCI Retry
Unobserved: true
Notes: Long ago. Almost certainly vestigial. Unknown.
10-11:
Name: Dual MAC Mode
Unobserved: true
Notes: Long ago. Almost certainly vestigial. Unknown.
12:
Name: Reverse N-Way
Values:
0: N-way negotiation (1000->100->10).
1: Reverse N-way negotiation (10->100->1000).
Notes: |
Meaning unclear aside from name. S2: something to do with VMAIN?
"Power saving auto-negotiation mode".
13:
Name: Mini PCI
14:
Name: Auto Powerdown Enable
TG3: NIC_SRAM_DATA_CFG_2_APD_EN
15-16:
Name: SHASTA LED Control
Values:
0:
Name: Legacy
TG3: SHASTA_EXT_LED_LEGACY
1:
Name: Shared
TG3: SHASTA_EXT_LED_SHARED
2:
Name: MAC
TG3: SHASTA_EXT_LED_MAC
3:
Name: Combo
TG3: SHASTA_EXT_LED_COMBO
Notes: Related to LED control.
17:
Name: Time Sync Mode Enable
Source: Guessed
Notes: |
Controls `REG_GRC_MODE_CONTROL__TIME_SYNC_MODE_ENABLE`.
Was once "Capacitative Coupling".
18-19:
Name: Timesync GPIO Mapping
Source: Guessed
Notes: |
Copied to `REG_EAV_REF_CLOCK_CONTROL__TIMESYNC_GPIO_MAPPING`.
Bit 18 was once "TX SERDES Override"?
Bit 19 was once "used to be clkreq"?
20-22:
Name: APE GPIO 0 Mapping
Source: Guessed
Notes: |
Copied to `REG_EAV_REF_CLOCK_CONTROL__APE_GPIO_0_MAPPING`.
Bit 20 was once "used to be ASPM_L0"?
Bit 21 was once "used to be ASPM_L1"?
23-25:
Name: APE GPIO 1 Mapping
Source: Guessed
Notes: |
Copied to `REG_EAV_REF_CLOCK_CONTROL__APE_GPIO_1_MAPPING`.
26-28:
Name: APE GPIO 2 Mapping
Source: Guessed
Notes: |
Copied to `REG_EAV_REF_CLOCK_CONTROL__APE_GPIO_2_MAPPING`.
29-31:
Name: APE GPIO 3 Mapping
Source: Guessed
Notes: |
Copied to `REG_EAV_REF_CLOCK_CONTROL__APE_GPIO_3_MAPPING`.
GEN 0x01EC:
Name: Cfg Shared
Notes: Set from NVM, shared between all functions.
Bits:
0:
Name: Port Swap
Notes: |
Probably vestigial. Doesn't appear to be implemented.
TODO: check if this causes NCSI clock output disable (old note)?
1:
Name: ASPM Debounce
TG3: NIC_SRAM_ASPM_DEBOUNCE
BMAPI: L1ASPM_Debounce_En
2:
Name: Fiber WoL Capable
BMAPI: FiberWoLCapable
3:
Name: Disable Power Saving
BMAPI: DisablePowerSaving
7:
BMAPI: HotPlugPwrBdgtCnt
Notes: |
Causes `REG_GPHY_CONTROL_STATUS__SWITCHING_REGULATOR_POWER_DOWN`.
BMAPI: 3 bits, 0x0000_0380, HotPlugPwrBdgtCnt.
8:
Notes: |
Sets NCSI_CLOCK_OUTPUT_DISABLE flag in REG_TOP_LEVEL_MISCELLANEOUS_CONTROL_1.
9-10:
Notes: |
Unknown. If set to 0x0000_0200, causes certain MII write during stage1 init.
11:
QLMAPI: GPIO0 Output Enable
13:
QLMAPI: GPIO2 Output Enable
14:
QLMAPI: GPIO0 Output Value
15:
Notes: |
Unknown field, causes LSB in unknown REG 0x64DC to be set during stage1.
16:
QLMAPI: GPIO2 Output Value
17:
Name: NCSI Package ID Method
QLMAPI: NCSI Package ID Method
18-19:
Name: NCSI Package ID
QLMAPI: NCSI Package ID
20:
Name: NCSI BMC Connection Method
QLMAPI: NCSI BMC Connection Method
Values:
0: RMII
1: SMBus
Notes: Determines whether SMBus is used instead of RMII.
21:
Name: NCSI SMBus Speed
Values:
0: 100 kHz
1: 400 kHz
22:
Name: Link Flap Avoidance
TG3: NIC_SRAM_LNK_FLAP_AVOID
23:
Name: 1G on VAUX OK
TG3: NIC_SRAM_1G_ON_VAUX_OK
QLMAPI: Aux 1G Support
24:
QLMAPI: Compliance Mode
25:
QLMAPI: LTR Enable
26-27:
QLMAPI: TPH Features
Notes: |
Unknown field. Used in stage1 init.
28-29:
Notes: |
Sets unknown PCIe control REG 0x7C04, but only for IBM or Huawei subsystem IDs.
Does this determine number of functions to enable?
30-31:
Notes: |
Unknown field. Used in stage1 init.
GEN 0x01F0:
Name: Cfg Feature Other Functions
GEN 0x01F4:
Name: Cfg HW Other Functions
GEN 0x0214:
Name: Firmware Version
Notes: |
Set from NVM 0x096; firmware version and upper 16 bits of manufacturing date.
GEN 0x02A8:
Name: Cfg Hardware 2
Bits:
0:
Name: Enable Autonegotiation
Notes: |
Enable autonegotiation in MII init (S2).
1:
Name: Expansion ROM Enable
Notes: |
Controls whether expansion ROM is searched for (S1).
2:
Notes: |
Controls... something. TODO
4-5:
Name: Unknown SERDES 13 10
Notes: |
Controls some writes to MII (BLOCK 0x10):0x10 (SERDES).
6-7:
Name: Unknown SERDES 13 12
Notes: |
Controls some writes to MII (BLOCK 0x13):0x12 (SERDES).
21:
Name: "Unknown SERDES 10 10: 01"
Notes: |
Enable some unknown flag in SERDES MII init path. (BLOCK 0x10):0x10 bit 0x01.
22:
Name: "Unknown SERDES 10 10: 10"
Notes: |
Enable some unknown flag in SERDES MII init path. (BLOCK 0x10):0x10 bit 0x10.
GEN 0x02AC:
Name: Cfg Hardware 2 Other Functions
GEN 0x02B0:
Name: CPMU Status
Notes: |
The upper 16 bits of this is the upper 16 bits of REG_STATUS, and the lower
16 bits are set to 0x362C to indicate validity.
GEN 0x02BC:
Name: Cfg 5
Bits:
0:
Notes: |
Unknown. Sets bit 24 in unknown PCIe control register 0x7C00.
1:
Name: Disable 1G Half Adv
TG3: NIC_SRAM_DISABLE_1G_HALF_ADV
Notes: |
Unknown.
2-3:
Notes: |
Unknown. Controls initialization of REG 0x64DC.
Notes: |
Set from NVM 0x21C.
REG 0x0068:
Name: Miscellaneous Host Control
Bits:
0: Clear Interrupt
1: Mask Interrupt
2: Enable Endian Byte Swap
3: Enable Endian Word Swap
4: Enable PCI State Register Read/Write Capability
5: Enable Clock Control Register Read/Write Capability
6: Enable Register Word Swap
7: Enable Indirect Access
8: Mask Interrupt Mode
9: Enable Tagged Status Mode
10: RCB Check
11: Interrupt Check
12: Byte Enable Rule Check
13: Boundary Check
14: Log Header Overflow
15: Enable TLP Minor Error Tolerance
16-31: ASIC Revision ID
REG 0x0070:
Name: PCI State
S1: true
S2: true
Bits:
5: PCI Expansion ROM Desired
6: PCI Expansion ROM Retry
7: VPD Available
8: Flat View
9-11: Max PCI Target Retry
15: Config Retry
16: APE Control Register Write Enable
17: APE Shared Memory Write Enable
18: APE Program Space Write Enable
19: Generate Reset Plus
REG 0x007C:
Name: Memory Base
REG 0x0088:
Name: UNDI Receive Return Ring Consumer Index
Size: 8
REG 0x008C:
Name: UNDI Receive Return Ring Consumer Index Low
S1: true
REG 0x00BC:
Name: Link Status Control
S1: true
Notes: |
PCIe standard register.
Bits:
16-19:
Name: Negotiated Link Speed
Values:
1: PCIe 1.0
2: PCIe 2.0
20-25:
Name: Negotiated Link Width
REG 0x0400:
Name: EMAC Mode
S2: true
Bits:
0: Global Reset
1: Half Duplex
2-3:
Name: Port Mode
Values:
0: None
1: 10/100
2: 1000
3: TBI
4: Loopback Mode
7: Tagged MAC Control
8: Enable TX Bursting
9: Max Defer
11: Enable RX Statistics
12: Clear RX Statistics
13: Flush RX Statistics
14: Enable TX Statistics
15: Clear TX Statistics
16: Flush TX Statistics
17: Send Config Command
18: Magic Packet Detection Enable
19: ACPI Power On Enable
21: Enable TCE
22: Enable RDE
23: Enable FHDE
24: Keep Frame In WOL
25: Halt Interesting Packet PME
26: Free-Running ACPI
27: Enable APE RX Path
28: Enable APE TX Path
29: MAC Loopback Mode Control
REG 0x040C:
Name: LED Control
S1: true
Bits:
0: Override Link
1: LED 1000
2: LED 100
3: LED 10
4: Override Traffic
5: LED Traffic Blink
6: LED Traffic
7: LED Status 1000
8: LED Status 100
9: LED Status 10
10: LED Status Traffic
11-12:
Name: LED Mode
Values:
0: MAC
1: PHY Mode 1
2: PHY Mode 2
3: PHY Mode 1.
13: MAC Mode
14: Shared Traffic/Link LED Mode
19-30: Blink Period
31: Override Blink Rate
REG 0x0410:
Name: EMAC MAC Addresses 0 High
S1: true
REG 0x0414:
Name: EMAC MAC Addresses 0 Low
S1: true
REG 0x0418:
Name: EMAC MAC Addresses 1 High
S1: true
REG 0x041C:
Name: EMAC MAC Addresses 1 Low
S1: true
REG 0x0420:
Name: EMAC MAC Addresses 2 High
S1: true
REG 0x0424:
Name: EMAC MAC Addresses 2 Low
S1: true
REG 0x0428:
Name: EMAC MAC Addresses 3 High
S1: true
REG 0x042C:
Name: EMAC MAC Addresses 3 Low
S1: true
REG 0x044C:
Name: MII Communication
S1: true
S2: true
Bits:
0-15: Transaction Data
16-20: Register Address
21-25: PHY Address
26-27:
Name: Command
Values:
1: Write
2: Read
28: Read Failed
29: Start/Busy
REG 0x0454:
Name: MII Mode
S1: true
Bits:
15: Constant MDIO/MDC Clock Speed
REG 0x0468:
Name: Receive MAC Mode
S2: true
Bits:
1: Enable
8: Promiscuous Mode
REG 0x05B4:
Name: SGMII Status
S1: true
S2: true
Bits:
0: Autonegotiation Complete
1: Link Status
2: Duplex Status
3: Speed 1000
4: Speed 100
5: Next Page RX
6: Pause RX
7: Pause TX
8: Media Selection Mode
9: PCS CRS Detect
10: External CRS Detect
16-31: Link Partner Autonegotiation Capability
REG 0x3600:
Name: CPMU Control
S2: true
Bits:
0: CPMU Software Reset
1: CPMU Register Software Reset
2: Power Down
4: APE Sleep Mode Enable
5: APE Deep Sleep Mode Enable
9: Link Idle Power Mode Enable
10: Link Aware Power Mode Enable
14: Link Speed Power Mode Enable
16: GPHY 10MB Receive Only Mode Enable
18: Legacy Timer Enable
19: SGMII/PCS Power Down
28: Software Controlled GPHY Force DLL On
REG 0x3610:
Name: Link Aware Power Mode Clock Policy
S2: true
Bits:
16-20:
Name: MAC Clock Switch
Values:
1: 60.0MHz
3: 30.0MHz
5: 15.0MHz
7: 7.5MHz
9: 3.75MHz
17: 12.5MHz
19: 6.25MHz
21: 3.125MHz
23: 1.563MHz
25: 781kHz
31: 12.5MHz/1.25MHz
REG 0x3624:
Name: Clock Speed Override Policy
S1: true
S2: true
Bits:
16-20: MAC Clock Switch
31: MAC Clock Speed Override Enabled
REG 0x362C:
Name: Status
S1: true
S2: true
Bits:
0-3: Power Management State Machine State
4-6: CPMU Power State
7: Energy Detect Status
8-9: Power State
13: VMAIN Power Status
14: WOL Magic Packet Detection Enable Port 0
15: WOL ACPI Detection Enable Port 0
16: NCSI DLL Lock Status
17: GPHY DLL Lock Status
18: Link Idle Status
19-20: Ethernet Link Status
21: WOL Magic Packet Detection Enable Port 1
22: WOL ACPI Detection Enable Port 1
23-24: APE Status
25-29: Function Enable
30-31: Function Number
REG 0x3630:
Name: Clock Status
S1: true
REG 0x3638:
Name: GPHY Control/Status
S1: true
S2: true
Bits:
0: GPHY IDDQ
1: BIAS IDDQ
2: CPMU Software Reset
3: CPMU Register Software Reset
4: Power Down
15: SGMII/PCS Power Down
25: NCSI PLL Lock Status
26: TLP Clock Source
27: Switching Regulator Power Down
REG 0x3658:
Name: Chip ID
REG 0x365C:
Name: Mutex Request
S2: true
REG 0x3660:
Name: Mutex Grant
S2: true
REG 0x3664:
Name: GPHY Strap
S1: true
Bits:
2: TXMBUF ECC Enable
3: RXMBUF ECC Enable
4: RXCPU SPAD ECC Enable
REG 0x367C:
Name: Top Level Miscellaneous Control 1
S1: true
S2: true
Bits:
4: NCSI Clock Output Disable
5: Low Power IDDQ Mode
REG 0x36B0:
Name: EEE Mode
S2: true
Bits:
0: RX CPU Allow LPI
1: Drive Allow LPI
2: APE TX Detection Enable
3: EEE Link Idle Detection Enable
4: PCIe L1 Exit Detection Enable
5: RX CPU Allow LPI Enable
6: Send Index Detection Enable
7: User LPI Enable
8: TX LPI Enable
9: RX LPI Enable
10: Auto Wake Enable
11-18: Block Time
19: Drive Allow LPI Enable
REG 0x36BC:
Name: EEE Link Idle Control
S2: true
Bits:
2: Debug UART Idle
REG 0x36D0:
Name: EEE Control
S2: true
Bits:
0-15: Exit Time
16-31: Minimum Assert
REG 0x36F0:
Name: Global Mutex Request
S1: true
S2: true
REG 0x36F4:
Name: Global Mutex Grant
S1: true
S2: true
REG 0x4000:
Name: Memory Arbiter Mode
S1: true
S2: true
Bits:
1: Enable
REG 0x4400:
Name: Buffer Manager Mode
S1: true
Bits:
1: Enable
2: Attention Enable
5: Reset RXMBUF Pointer
REG 0x4910:
Name: LSO/NonLSO BD Read DMA Corruption Enable Control
S1: true
Bits:
16-17:
Name: PCI Request Burst Length for BD RDMA Engine
Values:
0: 128B
1: 256B
2: 512B
3: 4K
18-19:
Name: PCI Request Burst Length for NonLSO RDMA Engine
Values:
0: 128B
1: 256B
2: 512B