Files
cabletest/docs/bcm84891l-sfp-registers.md
T

80 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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) |
| 310 | 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 |
| 2035 | Vendor name | "OEM " | shipped unit reads "FS" |
| 4055 | Vendor PN | "10GBase-T C100m" | shipped unit reads "SFP-10G-T-100" |
| 6465 | 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 |
| 96127 | Vendor specific | all 00 | |
## 23. 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.0xFFE00xFFFF |
| 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).