CodingBox Documentação

SGMII, 1000BASE-X, QSGMII, USXGMII: interfaces seriais para PHYs e SFP

Toda gaiola (cage) SFP de 1G carrega uma lane serial de 1,25 GBd, e essa lane pode falar dois dialetos que parecem idênticos num osciloscópio: 1000BASE-X, a interface do IEEE que um módulo de fibra espera, e SGMII, a variante da Cisco que acrescenta 10/100 Mb/s e uma autonegociação diferente. SFPs de cobre vivem na fronteira entre os dois, e a maioria dos chamados do tipo “o SFP de cobre estabelece enlace em 1G mas minha câmera de 100 Mb/s não” é uma incompatibilidade de dialeto. Esta página cobre os dois dialetos de gigabit, sua autonegociação, o 2500BASE-X, o QSGMII multiporta, o USXGMII para multigig e o SFP+ 10GBASE-T, e como o Linux e os switches escolhem o modo.

1000BASE-X: a interface nativa do SFP (Clause 36/37)

ItemValor
Taxa1,25 GBd, 8b/10b → carga útil de 1000 Mb/s
Lanes1 par diferencial em cada direção (CML, acoplado em AC)
Codificação8b/10b com vírgulas /K28.5/, conjuntos ordenados /C1/ /C2/ (configuração), /I1/ /I2/ (ocioso)
AutonegociaçãoClause 37: palavra de configuração de 16 bits trocada nos conjuntos ordenados /C/: duplex completo/semiduplex, pause (simétrico/assimétrico), falha remota, confirmação. Sem campo de velocidade: o 1000BASE-X é só 1G
OndeSerDes do switch/NIC → gaiola (cage) SFP; o SFP de fibra (SX/LX/ZX/BiDi/CWDM) passa direto para o laser; o PCS fica no host

Um SFP de fibra é transparente: o que quer que o host codifique sai como luz. É por isso que um módulo de fibra de 1G não tem “modo” — mas a porta tem, e precisa ser 1000BASE-X (geralmente mostrado como modo “SerDes” ou “fiber”, speed nonegotiate na Cisco quando o lado remoto não tem AN).

SGMII: gigabit mais 10/100 (especificação Cisco SGMII v1.8)

ItemValor
Taxaos mesmos 1,25 GBd, 8b/10b
Suporte a 10/100cada byte de dado é replicado 100× (10 Mb/s) ou 10× (100 Mb/s) para a linha ficar em 1,25 GBd
Lanes2 pares; pares de clock DDR de 625 MHz opcionais (TX_CLK/RX_CLK); a maioria das implementações de SerDes roda sem clock
Autonegociaçãopalavra de controle do SGMII (também transportada nos conjuntos ordenados /C/, 16 bits): bit 15 link, bits 11–10 velocidade (10/100/1000), bit 12 duplex, bit 14 ack; enviada do PHY → MAC para informar ao MAC o que o lado de cobre negociou. Não compatível com o conteúdo da Clause 37
OndeMAC ↔ PHY de cobre (Marvell 88E15xx, TI DP83867, Broadcom), SoC ↔ gaiola (cage) SFP em placas que querem suporte a SFP de cobre, no interior do SFP 1000BASE-T de cobre

O SGMII é uma interface MAC–PHY; a “autonegociação” acontece duas vezes: a Clause 28 no par trançado entre o PHY e o parceiro de enlace, depois a palavra de controle do SGMII relata o resultado ao MAC. Quando um host espera a Clause 37 e recebe uma palavra SGMII (ou vice-versa), o enlace nunca completa a AN; desativar a AN na porta (speed nonegotiate, no negotiation auto, autoneg off) é a solução alternativa usual, apenas em 1G.

SFPs de cobre entre os dois

Modo da porta do hostComportamento do SFP de cobreClientes 10/100
1000BASE-X, AN ligadao PHY do módulo precisa responder à Clause 37: muitos respondem (emulam), alguns não → sem enlace até desligar a ANnão (sem campo de velocidade)
1000BASE-X, AN desligadaenlace em 1G quando o lado de cobre negocia 1Gnão
SGMII, AN ligadao PHY informa 10/100/1000 via palavra de controlesim
SGMII, AN desligadafixo em 1Gnão

Módulos SFP de cobre baseados no Marvell 88E1111 vêm por padrão em SGMII ou 1000BASE-X, dependendo de uma EEPROM de configuração/strap definida na fabricação; fabricantes vendem variantes “SGMII” e “SerDes” do mesmo módulo, e alguns podem ser trocados pelos registradores do PHY, acessíveis pelo I²C do módulo. Portas de switch que listam “suporte a SFP 1000BASE-T” implementam SGMII nessas gaiolas (cage) (Ethernet em cobre e DAC).

SFPs 100BASE-FX

Um SFP de fibra de 100 Mb/s (100BASE-FX, 1310 nm, 2 km) exige que o host rode a lane a 125 MBd com 4b/5b, um PCS completamente diferente. Só funcionam as portas que suportam explicitamente “SFP de 100M” (muitos switches de campus em portas selecionadas, a maioria dos roteadores; poucos switches de data center); nas outras o módulo é detectado e nunca estabelece enlace. Alguns hosts implementam o 100BASE-FX por replicação SGMII com um PHY externo no módulo (SFPs “100M over SGMII”).

2500BASE-X

ItemValor
Taxa3,125 GBd, 8b/10b → 2,5 Gb/s
Padrãonenhum do IEEE (de facto, 2,5 × 1000BASE-X); Linux phy-interface-type = "2500base-x"
ANestilo Clause 37, geralmente desativada
Ondemódulos SFP de 2,5G (2,5GBASE-T cobre, fibra de 2,5G), sticks ONU GPON/EPON voltados para o host (downstream de 2,5G), uplinks de AP Wi-Fi 6, algumas gaiolas (cage) SFP de switch de 2,5G

Os equivalentes do IEEE para multigig são 2,5GBASE-X/5GBASE-R (802.3bz), mas a maior parte do silício fala 2500BASE-X ou USXGMII.

QSGMII: quatro portas em uma lane

ItemValor
Taxa5 GBd, 8b/10b; 4 canais SGMII multiplexados no tempo
Lanes2 pares para quatro portas
OndeASIC do switch ↔ PHY de cobre quádruplo (switches de acesso de 48 portas: 12 lanes QSGMII em vez de 48 SGMII), alguns designs de gaiola (cage) SFP de quatro portas via SerDes externo
VariantesQSGMII (Cisco), também “PSGMII” (5 portas) em alguns SoCs Qualcomm/Realtek

Não é visível numa gaiola (cage) em projetos normais; importa quando uma placa com PHY quádruplo expõe portas combo SFP cujo modo é herdado do canal do PHY.

USXGMII: de 10 Mb/s a 10 Gb/s em uma lane de 10G

ItemValor
Taxa10,3125 GBd, 64b/66b (elétrico 10GBASE-R)
Velocidades10M, 100M, 1G, 2,5G, 5G, 10G por replicação de símbolos (como o SGMII em escala maior)
EspecificaçãoCisco USXGMII (v1.2), amplamente adotado; Linux usxgmii
MultiportaUSXGMII-M: 4 × 2,5G, 2 × 5G, 4 × 1G+… em uma lane de 10G (como o QSGMII)
ANpalavra de AN do USXGMII no idle do 64b/66b, informa velocidade/duplex/enlace
OndeASIC ↔ PHY multigig (portas 2,5/5/10GBASE-T), módulos SFP+ 10GBASE-T (PHY interno, por exemplo Marvell AQR/Broadcom)

Um módulo SFP+ 10GBASE-T apresenta 10GBASE-R (SFI) para uma porta SFP+ normal e estabelece enlace em 10G; se ele também consegue atender clientes 1G/2,5G/5G depende de o host suportar adaptação de taxa USXGMII nessa gaiola (cage). A maioria dos switches não suporta, então o módulo funciona só em 10G, ou realiza a adaptação internamente e informa 10G ao host enquanto o lado de cobre roda mais devagar (Velocidade e taxa).

Como o host escolhe o modo

HostMecanismo
Linux phylink/SFPlê os bytes A0h 3–10 (conformidade), 12 (taxa nominal), 36 (estendido) e o bit 3 do byte 6 (1000BASE-T): 1000BASE-T → SGMII (ou 1000BASE-X se o SoC não tiver SGMII); 1000BASE-SX/LX → 1000BASE-X; BR 3,1 GBd → 2500BASE-X; códigos de 10G → 10GBASE-R; o PHY de cobre dentro do módulo é sondado por I²C (endereço 0x56/0xAC) e controlado pela phylib
Switch NOSpadrão da porta conforme a plataforma (a maioria das gaiolas (cage) SFP de 1G é compatível com SGMII; SFP+/SFP28 em 1G costuma ser só 1000BASE-X), comandos speed 1000, speed nonegotiate, media-type sfp, negotiation auto, port-mode
Drivers de NICIntel: portas SFP+ suportam 1G apenas em 1000BASE-X (sem SFP de cobre 10/100); Mellanox: 1G via 1000BASE-X em alguns modelos; Broadcom: conforme o firmware (Portas de NIC)
SFP de cobrestrap/EEPROM do modo do PHY (variante SGMII vs. SerDes), comportamento da AN definido pelo firmware do fabricante

Tabela de incompatibilidades

SintomaCausaCorreção
SFP de cobre: clientes 1G bem, 10/100 nunca estabelecem enlaceporta em 1000BASE-Xmover para uma porta compatível com SGMII ou usar um módulo que esconde o 10/100 atrás de uma adaptação 1G-para-host
SFP de fibra só estabelece enlace com AN desligadalado remoto sem Clause 37 (conversor de mídia, alguns ONUs) ou palavra SGMII vinda de um módulo de cobrespeed nonegotiate / autoneg off
SFP 100BASE-FX detectado, sem enlacehost sem modo SerDes de 100Musar uma porta que suporte SFP de 100M, ou módulo 100BASE-FX sobre SGMII
SFP de 2,5G estabelece enlace em 1G ou não estabelecehost sem 2500BASE-Xescolher uma gaiola (cage) compatível com 2,5G ou um módulo com fallback de taxa
Stick ONU estabelece enlace e depois caiexpectativa 2500BASE-X vs. 1000BASE-X, ANconfigurar o host para 2500BASE-X, AN desligada (Ópticas PON)
SFP+ 10GBASE-T só estabelece enlace em 10Gsem USXGMII no hostaceitar só 10G, ou usar um módulo com adaptação de taxa interna
Linux: módulo funciona numa placa, mas não em outrao phylink escolheu uma interface diferente a partir da EEPROM; o SoC não tem esse modochecar o dmesg por sfp: module … interface; corrigir os bytes de conformidade ou a device tree

No CodingBox

Os bytes que direcionam a escolha do host estão todos no A0h: códigos de conformidade 3–10 (1000BASE-T, SX, LX, códigos de 10G), taxa de bits nominal 12, codificação 11 (8b/10b vs. 64b/66b), conformidade estendida 36. Um módulo de cobre codificado como 1000BASE-SX será tratado como fibra e perderá seu caminho 10/100; um módulo de fibra com um bit 1000BASE-T indevido será controlado como SGMII. O CodingBox mostra e edita esses campos (Check transceiver, Códigos de conformidade).


Se você encontrar uma imprecisão ou um erro neste artigo, selecione o trecho correspondente e pressione Ctrl+Enter para .