After today's discussion with Russell King about what phylink exposes in .mac_config(): https://marc.info/?l=linux-netdev&m=156043794316709&w=2 I am submitting for initial review the dpaa2-mac driver model.
At the moment, pause frame support is missing so inherently all the USXGMII modes that rely on backpressure applied by the PHY in rate adaptation between network side and system side don't work properly. As next steps, the driver will have to be integrated with the SFP bus so commands such as 'ethtool --dump-module-eeprom' will have to work through the current callpath through firmware. This poses somewhat of a problem, as dpaa2-eth lacks any handle to the phy so it will probably need further modification to the API that the firmware exposes (same applies to 'ethtool --phy-statistics'). The documentation patch provides a more complete view of the software architecture and the current implementation. Ioana Ciornei (4): net: phy: update the autoneg state in phylink_phy_change dpaa2-mac: add MC API for the DPMAC object dpaa2-mac: add initial driver net: documentation: add MAC/PHY proxy driver documentation Ioana Radulescu (2): dpaa2-eth: add support for new link state APIs dpaa2-eth: add autoneg support .../freescale/dpaa2/dpmac-driver.rst | 159 ++++++ .../device_drivers/freescale/dpaa2/index.rst | 1 + MAINTAINERS | 8 + drivers/net/ethernet/freescale/dpaa2/Kconfig | 13 + drivers/net/ethernet/freescale/dpaa2/Makefile | 2 + .../net/ethernet/freescale/dpaa2/dpaa2-ethtool.c | 83 +++- drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c | 541 +++++++++++++++++++++ drivers/net/ethernet/freescale/dpaa2/dpmac-cmd.h | 107 ++++ drivers/net/ethernet/freescale/dpaa2/dpmac.c | 369 ++++++++++++++ drivers/net/ethernet/freescale/dpaa2/dpmac.h | 210 ++++++++ drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h | 35 ++ drivers/net/ethernet/freescale/dpaa2/dpni.c | 70 +++ drivers/net/ethernet/freescale/dpaa2/dpni.h | 27 + drivers/net/phy/phylink.c | 1 + 14 files changed, 1612 insertions(+), 14 deletions(-) create mode 100644 Documentation/networking/device_drivers/freescale/dpaa2/dpmac-driver.rst create mode 100644 drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c create mode 100644 drivers/net/ethernet/freescale/dpaa2/dpmac-cmd.h create mode 100644 drivers/net/ethernet/freescale/dpaa2/dpmac.c create mode 100644 drivers/net/ethernet/freescale/dpaa2/dpmac.h -- 1.9.1