Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

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

Đang mở
#636 4 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
linux

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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.

Ngôn ngữ chính
Shell
Star
71
Fork
245
Merge trung bình
2 ngày 1 giờ
Pull request đã merge (30 ngày)
5

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của sonic-net/sonic-linux-kernel

Tất cả issue của sonic-net/sonic-linux-kernel

Issue tương tự

Thêm issue về Shell/Bash

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.