Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[Regression][AST2700][ftgmac100] SGMII hard reset leaves Goldfinch RX path nonfunctional

Aperta
#636 4 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
linux

Direzione di ricerca

Start with patches-sonic/0010-net-ftgmac100-hard-reset-mac-for-sgmii.patch and the ftgmac100 AST2700 reset path it changes. Compare the Goldfinch device-tree fixed-link configuration and BCM54210S topology with the patch's stated hardware case. Reproduce with the patch enabled and disabled, then verify that eth0 receives packets and DHCP completes without regressing the supported SGMII case.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

The generic ftgmac100 SGMII hard-reset patch causes the Ethernet receive path to stop working on the Arista Goldfinch AST2700 BMC.

After boot, eth0 reports carrier and link up. TX counters increase, but RX remains at zero. DHCP sends repeated requests without receiving any offers, so no IPv4 address is assigned.

PR: #75
Commit: https://github.com/sonic-net/sonic-linux-kernel/commit/22c7b0060dffd23ec0f71390690112e7148ae611

Platform
Platform: Arista Goldfinch BMC
SoC: Aspeed AST2700
Architecture: arm64
Kernel: 6.12.41+deb13-sonic-arm64
Goldfinch Ethernet configuration

Goldfinch configures MAC2 as fixed-link SGMII:

&mac2 {
    status = "okay";
    phy-mode = "sgmii";
    fixed-link {
        speed = <1000>;
        full-duplex;
    };
};

link

Affected image used for log collection:

SONiC.branch.msft-202608-ars.046172c0
Build date: 2026-09-25
Observed behavior

The interface reports both administrative and carrier state as up:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> state UP
    link/ether b8:a1:b8:a8:71:06

The kernel reports:
ftgmac100 14070000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off

However, RX remains at zero:

RX:  bytes packets errors dropped missed mcast
          0       0      0       0      0     0

TX:  bytes packets errors dropped carrier collsns
       7980      48      0       2       0       0

DHCP repeatedly transmits requests:

DHCPDISCOVER on eth0 to 255.255.255.255 port 67
DHCPDISCOVER on eth0 to 255.255.255.255 port 67
No DHCPOFFERS received.
No working leases in persistent database - sleeping.

IPv6 DHCP solicitation also transmits without receiving a response:
XMT: Solicit on eth0

As a result, eth0 only has its automatically generated IPv6 link-local address and no IPv4 address.

Responsible Change

The kernel update enabled:
0010-net-ftgmac100-hard-reset-mac-for-sgmii.patch

The AST2700 driver already performed a hard reset for RMII:

reset_control_assert(priv->rst);
usleep_range(10000, 20000);
reset_control_deassert(priv->rst);

The new patch broadens that condition to every SGMII interface:


if (priv->netdev->phydev->interface == PHY_INTERFACE_MODE_RMII ||
    priv->netdev->phydev->interface == PHY_INTERFACE_MODE_SGMII)
Hardware Difference

The patch description specifically identifies an AST2700 platform using a Marvell 88E151x PHY over SGMII. It states that this hardware can enter an RX-stalled state after a link flap and that performing a full MAC hard reset recovers it.

The Marconi CPU card used with Goldfinch has a different SGMII topology and uses a Broadcom BCM54210S PHY. The connection is represented to Linux as fixed-link SGMII.

Therefore, the reset may be a valid workaround for the NVIDIA hardware and Marvell 88E151x combination, but applying it unconditionally to every SGMII interface negatively affects the Goldfinch/BCM54210S hardware.

Confirmation

Disabled only this patch and the eth0 connectivity was restored successfully, confirming that enabling the generic SGMII hard-reset path triggers the Goldfinch regression.

Lingua principale
Shell
Stelle
71
Fork
245
Merge medio
2g 1h
PR unite (30g)
5

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di sonic-net/sonic-linux-kernel

Tutte le issue di sonic-net/sonic-linux-kernel

Issue simili

Altre issue su Shell/Bash

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.