[PATCH net-next v5 0/2] net: macb: 1000BASE-X on internal PCS
From: Nathan Whitehorn <hidden>
Date: 2026-08-13 15:37:24
This series adds support for 1000BASE-X autonegotiation to the Cadence macb driver when using the MAC-internal PCS. The existing driver code is oriented toward the PCS being used with an on-board SGMII PHY, so uses Cisco SGMII-style autonegotiation exclusively and does not anticipate e.g. link state changes arising from fiber attach/detach events since the SGMII endpoint is permanently attached in such cases. The first patch changes the driver to monitor the PCS's link by polling, following the approach used currently by this driver for fixed links; the second extends the existing SGMII autonegotiation code to also support 1000BASE-X autonegotiation. Changelog: - v1: Original patch Link: https://lore.kernel.org/netdev/20260714200904.70428-1-nwhitehorn@pa.msu.edu/ (local) - v2: Split into two pieces and clean-up of a few details in anrestart(). Link: https://lore.kernel.org/netdev/20260714200904.70428-1-nwhitehorn@pa.msu.edu/ (local) - v3: Fix mistakes in commit message for patch 1 and improve wording. Link: https://lore.kernel.org/netdev/20260729192748.6928-1-nwhitehorn@pa.msu.edu/ (local) - v4: Fix return value in macb_pcs_config() to indicate to phylink when the autonegotiation advertisement has changed and autonegotiation needs to be restarted. Link: https://lore.kernel.org/r/20260807201741.3275-1-nwhitehorn@pa.msu.edu (local) - v5: Fix bug in the v4 return value from macb_pcs_config() that caused phylink to be informed in the wrong circumstances about updates. Also adjust some whitespace issues in the earlier patch series. Tested on Microchip PolarFire SoC with a variety of SFPs (copper, fiber, GPON) attached to the I/O Bank-5 PCS lines. Thanks to Charles Perry, Andrew Lunn, Paolo Abeni, Théo Lebrun, and Jakob Kicinski for helpful suggestions and discussion on this patch series. As a brief summary of that discussion, there are a few areas near this patch that are existing non-idealities in the macb driver, in particular that it uses polling to monitor link-state with the internal PCS and the driver does not currently have support for using the link-state change interrupt. The intention is to address this in a later patch that would remove polling from both this case and the fixed-link one.