Hi maintainers, This patch series is v5 to introduce support for MUCSE N500/N210 1Gbps Ethernet controllers. I divide codes into multiple series, this is the first one which only register netdev without true tx/rx functions. The driver has been tested on the following platform: - Kernel version: 6.16.0 - Intel Xeon Processor Changelog: v4 -> v5: [patch 1/5]: 1. Remove system state and Wol code. [patch 2/5]: 1. Use define for mbx offset registers. 2. Remove 'switch (hw->hw_type)' in rnpgbe_add_adapter. 3. Remove 'hw->driver_version' in hw structure. [patch 3/5]: 1. Return -EINVAL if 'size > mbx->size' in mucse_read_mbx. 2. Remove mbx->ops, call the functions directly. 3. Rewrite mbx_wr32, mbx_rd32. [patch 4/5]: 1. Change laber 'quit' to 'out' in mucse_fw_send_cmd_wait. 2. Fix 'mucse_mbx_fw_post_req' to follow 'one lock statement and 3. Use "timeout_jiffies" instead of "timeout_jiffes". 4. Fix 'pfvfnum' in define structure to improve padding problem. 5. Fix 'build_phy_abilities_req' pass the same parameter twice. 6. Use wait_event_timeout, not wait_event_interruptible_timeout. 7. Move 'build**' functions to .c. 8. Remove L_WD, do it in the lowest layer. 9. Add MBX_REQ_HDR_LEN in build**. [patch 5/5]: 1. Remove no-use define dma_wr32. 2. Rename dma_rd32 to rnpgbe_dma_rd32. 3. Fix extra indentation in 'rnpgbe_xmit_frame'. 4. Return -EINVAL if get perm_addr failed in 'rnpgbe_get_permanent_mac'. 5. Remove flags 'M_FLAGS_INIT_MAC_ADDRESS'. 6. Remove 'netdev->reg_state' in rnpgbe_rm_adapter. links: v4: https://lore.kernel.org/netdev/20250814073855.1060601-1-dong100@xxxxxxxxx/ v3: https://lore.kernel.org/netdev/20250812093937.882045-1-dong100@xxxxxxxxx/ v2: https://lore.kernel.org/netdev/20250721113238.18615-1-dong100@xxxxxxxxx/ v1: https://lore.kernel.org/netdev/20250703014859.210110-1-dong100@xxxxxxxxx/ Dong Yibo (5): net: rnpgbe: Add build support for rnpgbe net: rnpgbe: Add n500/n210 chip support net: rnpgbe: Add basic mbx ops support net: rnpgbe: Add basic mbx_fw support net: rnpgbe: Add register_netdev .../device_drivers/ethernet/index.rst | 1 + .../device_drivers/ethernet/mucse/rnpgbe.rst | 21 + MAINTAINERS | 8 + drivers/net/ethernet/Kconfig | 1 + drivers/net/ethernet/Makefile | 1 + drivers/net/ethernet/mucse/Kconfig | 34 ++ drivers/net/ethernet/mucse/Makefile | 7 + drivers/net/ethernet/mucse/rnpgbe/Makefile | 11 + drivers/net/ethernet/mucse/rnpgbe/rnpgbe.h | 117 +++++ .../net/ethernet/mucse/rnpgbe/rnpgbe_chip.c | 160 ++++++ drivers/net/ethernet/mucse/rnpgbe/rnpgbe_hw.h | 26 + .../net/ethernet/mucse/rnpgbe/rnpgbe_main.c | 310 +++++++++++ .../net/ethernet/mucse/rnpgbe/rnpgbe_mbx.c | 481 ++++++++++++++++++ .../net/ethernet/mucse/rnpgbe/rnpgbe_mbx.h | 31 ++ .../net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.c | 333 ++++++++++++ .../net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.h | 155 ++++++ 16 files changed, 1697 insertions(+) create mode 100644 Documentation/networking/device_drivers/ethernet/mucse/rnpgbe.rst create mode 100644 drivers/net/ethernet/mucse/Kconfig create mode 100644 drivers/net/ethernet/mucse/Makefile create mode 100644 drivers/net/ethernet/mucse/rnpgbe/Makefile create mode 100644 drivers/net/ethernet/mucse/rnpgbe/rnpgbe.h create mode 100644 drivers/net/ethernet/mucse/rnpgbe/rnpgbe_chip.c create mode 100644 drivers/net/ethernet/mucse/rnpgbe/rnpgbe_hw.h create mode 100644 drivers/net/ethernet/mucse/rnpgbe/rnpgbe_main.c create mode 100644 drivers/net/ethernet/mucse/rnpgbe/rnpgbe_mbx.c create mode 100644 drivers/net/ethernet/mucse/rnpgbe/rnpgbe_mbx.h create mode 100644 drivers/net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.c create mode 100644 drivers/net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.h -- 2.25.1