3.3 KiB
FS SFP-10G-T-100 transport reference — transcription
Transcribed (visually, tables intact) from the FS-provided 4-page
10GBase-T Coper SFP Registers Operation's Reference for BCM84891.pdf
(an ODM document — PDF metadata titles it "ABCU-5710RZ / ABCU-5700RZ").
1. Serial ID memory (A0h)
Standard SFP MSA serial ID at I2C A0h. Notable factory values (the module is honest about copper — cf. hardware.md):
| Addr | Field | Value | Meaning |
|---|---|---|---|
| 0 | Identifier | 03 | SFP |
| 1 | Ext. identifier | 04 | MOD4 |
| 2 | Connector | 21 | Copper pigtail (the shipped unit reads 22 = RJ45) |
| 3–10 | Transceiver | 02 00 00 00 00 08 00 00 | 10G Base-XFI to copper / SGMII to copper |
| 11 | Encoding | 00 | 64B/66B (or 8B/10B) |
| 12 | BR, nominal | 67 | 10.3125 GBd |
| 18 | Length (copper) | 64 | 100 m; 30 m minimum in-spec copper length |
| 20–35 | Vendor name | "OEM " | shipped unit reads "FS" |
| 40–55 | Vendor PN | "10GBase-T C100m" | shipped unit reads "SFP-10G-T-100" |
| 64–65 | Options | 00 12 | TX_DISABLE and RX_LOS implemented (shipped: 00 1A) |
| 92 | Diag monitoring | 00 | no A2h DOM implemented |
| 93 | Enhanced options | 00 | |
| 94 | SFF-8472 compliance | 00 | digital diagnostics not included |
| 96–127 | Vendor specific | all 00 |
2–3. SMI (I2C→MDIO) protocol for the PHY, with timing
The PHY is a 2-wire device at 8-bit address 0xAC write / 0xAD read
(1010110x). Clause-45 access frames:
Write (one I2C frame, 6 bytes):
S [0xAC] [000+DEVAD] [Reg_H] [Reg_L] [Data_H] [Data_L] P
Read (two I2C frames):
S [0xAC] [001+DEVAD] [Reg_H] [Reg_L] P → delay > 1 ms →
S [0xAD] [Data_H] [Data_L] P
Bit-level example diagrams confirm: every byte is slave-ACKed except the final read data byte, which the master NAKs before STOP. Worked examples: write 0x55AA to 1.0xA820; read 0x8542 from 1.0x0003.
4. PHY MMD map
Clause-45 MMDs behind the bridge:
| DEVAD | Block |
|---|---|
| 1 | 10GBASE-T PMA/PMD |
| 3 | 10GBASE-T PCS; XFI_M (XGMII) block also on DEVAD 3 |
| 7 | AN; SGMII block and 10/100/1000BASE-T PCS/PMA/PMD at 7.0xFFE0–0xFFFF |
| 30 | Top level (user-defined) |
Side blocks: JTAG, SPI, BSC, PLL/clock, LED controller.
5. Reference access commands and 10G bring-up sequence
The ODM's host-side primitives are exactly our sff_i2c ops:
Write_XGPHY_Register 0xAC [000+DEVAD] RegH RegL DataH DataL and
Read_XGPHY_Register 0xAC [001+DEVAD] RegH RegL, >1 ms, 0xAD DataH DataL.
Reference sequence "set PHY to work in 10GBE rate" (write in order):
| Frame | Register = value | Meaning |
|---|---|---|
| AC 01 00 00 20 40 | 1.0 = 0x2040 | PMA control: 10G speed select |
| AC 01 00 07 00 09 | 1.7 = 0x0009 | PMA control 2: 10GBASE-T type |
| AC 07 00 10 10 01 | 7.16 = 0x1001 | AN advertisement |
| AC 07 00 20 10 03 | 7.32 = 0x1003 | 10GBASE-T AN control |
| AC 07 00 3C 00 08 | 7.60 = 0x0008 | EEE advertisement — advertises 10GBASE-T EEE |
| AC 07 00 40 00 00 | 7.64 = 0x0000 | |
| AC 07 80 00 00 10 | 7.0x8000 = 0x0010 | vendor AN register |
| AC 07 00 00 B2 00 | 7.0 = 0xB200 | AN control: enable + restart |
The EEE-advertisement line means the reference bring-up (and possibly the module firmware's own defaults) leaves 10GBASE-T EEE negotiable — verify and disable for measurement runs (see modules.md probe list).