hw/net/imx_fec and hw/net/lan9118 implement the same Ethernet PHY with similar but not quite the same code. This series consolidates the implementations into one to fix code duplication. It then continues to make the code more readable by reusing some existing constants.
Having a dedicated module for the PHY allows it to be reused in even further device models. Testing done: * Run my usual sabrelite load and verify that network works. * Build and run Buildroot's qemu_arm_vexpress_defconfig which includes lan9118 and check on serial console that IP address gets assigned. v3: * Don't add SOFT reset, use device-specific method instead (Peter) * Reuse MII constants for MII_ANLPAR register which was previously missed * Fix off-by-one error in MII_ANLPAR register which prevented MII constants to be reused v2: * QOM'ify + mention boards whose migratability will be broken (Peter) Bernhard Beschow (5): hw/net/lan9118: Extract lan9118_phy hw/net/lan9118_phy: Reuse in imx_fec and consolidate implementations hw/net/lan9118_phy: Fix off-by-one error in MII_ANLPAR register hw/net/lan9118_phy: Reuse MII constants hw/net/lan9118_phy: Add missing 100 mbps full duplex advertisement include/hw/net/imx_fec.h | 9 +- include/hw/net/lan9118_phy.h | 37 ++++++ include/hw/net/mii.h | 6 + hw/net/imx_fec.c | 146 +++-------------------- hw/net/lan9118.c | 137 ++++----------------- hw/net/lan9118_phy.c | 222 +++++++++++++++++++++++++++++++++++ hw/net/Kconfig | 5 + hw/net/meson.build | 1 + hw/net/trace-events | 10 +- 9 files changed, 318 insertions(+), 255 deletions(-) create mode 100644 include/hw/net/lan9118_phy.h create mode 100644 hw/net/lan9118_phy.c -- 2.47.0