[PATCH net-next v11 0/5] net: rnpgbe: Add TX/RX and link status support

Dong Yibo posted 5 patches 2 weeks ago
Only 1 patches received!
There is a newer version of this series
drivers/net/ethernet/mucse/Kconfig            |    1 +
drivers/net/ethernet/mucse/rnpgbe/Makefile    |    3 +-
drivers/net/ethernet/mucse/rnpgbe/rnpgbe.h    |  201 +-
.../net/ethernet/mucse/rnpgbe/rnpgbe_chip.c   |  118 +-
drivers/net/ethernet/mucse/rnpgbe/rnpgbe_hw.h |   43 +
.../net/ethernet/mucse/rnpgbe/rnpgbe_lib.c    | 2248 +++++++++++++++++
.../net/ethernet/mucse/rnpgbe/rnpgbe_lib.h    |   84 +
.../net/ethernet/mucse/rnpgbe/rnpgbe_main.c   |  158 +-
.../net/ethernet/mucse/rnpgbe/rnpgbe_mbx.c    |   32 +-
.../net/ethernet/mucse/rnpgbe/rnpgbe_mbx.h    |    1 +
.../net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.c |  235 ++
.../net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.h |   43 +
12 files changed, 3138 insertions(+), 29 deletions(-)
create mode 100644 drivers/net/ethernet/mucse/rnpgbe/rnpgbe_lib.c
create mode 100644 drivers/net/ethernet/mucse/rnpgbe/rnpgbe_lib.h
[PATCH net-next v11 0/5] net: rnpgbe: Add TX/RX and link status support
Posted by Dong Yibo 2 weeks ago
Hi maintainers,

This patch series adds the packet transmission, reception, and link status
management features to the RNPGBE driver, building upon the previously
introduced mailbox communication and basic driver infrastructure.

The series introduces:
- MSI-X interrupt handling with NAPI support
- TX path with scatter-gather DMA and completion handling
- RX path with page pool buffer management
- unicast/multicast filter.
- Firmware link-event processing and carrier management

These changes enable the RNPGBE driver to support basic TX/RX
network operations.

---
Changelog:
v10 -> v11:
[patch 1/5]:
1. Drop MSI and single-vector MSI-X support. Require at least two MSI-X
   vectors, reserving vector 0 for mailbox events and using the remaining
   vectors for the data path. (Jakub Kicinski)
2. Prevent NAPI from re-enabling queue interrupts after the device is down.
3. Set the real Tx/Rx queue counts before registering the netdev.
4. Preserve the configured Tx/Rx queue counts when tearing down q_vectors.
[patch 2/5]:
1. Treat a Tx DMA timeout as a terminal AXI fault for the current driver
   instance, and document why Tx cleanup ignores the repeated idle-wait error
   after the fault is recorded.
2. Free q_vectors after an RCU grace period, matching the RCU-protected
   statistics collection path.
[patch 3/5]:
1. Arm Rx allocation retry timers only after NAPI has been enabled.
2. Mask queue interrupts again after disabling NAPI and calling
   synchronize_net(), preventing a completed poll from re-enabling them
   during device shutdown.
3. Clarify the hardware guarantee for the first RX descriptor length.
[patch 4/5]:
1. Advertise unicast address filtering support to the networking core.
2. Program receive filters under the netdev address lock before enabling Rx,
   and clarify the hardware multicast hash calculation.
3. Clear the RAR valid bit before changing an address, and set it only after
   the complete new address has been written.
[patch 5/5]:
1. Quiesce Tx DMA before notifying firmware that the port is down.
2. Remove the stale mailbox-event boolean return value and document why a
   failed mailbox read is not retried as transient lock contention.
3. Document the firmware link-event retry rate and mailbox ACK protocol.

Links:
v1:  https://lore.kernel.org/netdev/20260325091204.94015-1-dong100@mucse.com/
v2:  https://lore.kernel.org/netdev/20260403025713.527841-1-dong100@mucse.com/
v3:  https://lore.kernel.org/netdev/20260507081539.171844-1-dong100@mucse.com/
v4:  https://lore.kernel.org/netdev/20260526033539.164061-1-dong100@mucse.com/
v5:  https://lore.kernel.org/netdev/20260528023150.239532-1-dong100@mucse.com/
v6:  https://lore.kernel.org/netdev/20260604112750.769215-1-dong100@mucse.com/
v7:  https://lore.kernel.org/netdev/20260611100036.36370-1-dong100@mucse.com/
v8:  https://lore.kernel.org/netdev/20260731120322.895955-1-dong100@mucse.com/
v9:  https://lore.kernel.org/netdev/20260814111317.1741087-1-dong100@mucse.com/
v10: https://lore.kernel.org/netdev/F44E6669E6C9E7C4+20260831073608.401988-2-dong100@mucse.com/

---

Dong Yibo (5):
  net: rnpgbe: Add interrupt handling
  net: rnpgbe: Add basic TX packet transmission support
  net: rnpgbe: Add RX packet reception support
  net: rnpgbe: Add receive mode support
  net: rnpgbe: Add link status handling support

 drivers/net/ethernet/mucse/Kconfig            |    1 +
 drivers/net/ethernet/mucse/rnpgbe/Makefile    |    3 +-
 drivers/net/ethernet/mucse/rnpgbe/rnpgbe.h    |  201 +-
 .../net/ethernet/mucse/rnpgbe/rnpgbe_chip.c   |  118 +-
 drivers/net/ethernet/mucse/rnpgbe/rnpgbe_hw.h |   43 +
 .../net/ethernet/mucse/rnpgbe/rnpgbe_lib.c    | 2248 +++++++++++++++++
 .../net/ethernet/mucse/rnpgbe/rnpgbe_lib.h    |   84 +
 .../net/ethernet/mucse/rnpgbe/rnpgbe_main.c   |  158 +-
 .../net/ethernet/mucse/rnpgbe/rnpgbe_mbx.c    |   32 +-
 .../net/ethernet/mucse/rnpgbe/rnpgbe_mbx.h    |    1 +
 .../net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.c |  235 ++
 .../net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.h |   43 +
 12 files changed, 3138 insertions(+), 29 deletions(-)
 create mode 100644 drivers/net/ethernet/mucse/rnpgbe/rnpgbe_lib.c
 create mode 100644 drivers/net/ethernet/mucse/rnpgbe/rnpgbe_lib.h

-- 
2.50.1
Re: [PATCH net-next v11 0/5] net: rnpgbe: Add TX/RX and link status support
Posted by Yibo Dong 2 weeks ago
Hi,

Please ignore v11. I found that the In-Reply-To threading is incorrect
starting with patch 2.

I will resend the series with corrected threading (24 hours later).

Thanks,
Dong Yibo

On Fri, Sep 11, 2026 at 07:24:16PM +0800, Dong Yibo wrote:
> Hi maintainers,
> 
> This patch series adds the packet transmission, reception, and link status
> management features to the RNPGBE driver, building upon the previously
> introduced mailbox communication and basic driver infrastructure.
> 
> The series introduces:
> - MSI-X interrupt handling with NAPI support
> - TX path with scatter-gather DMA and completion handling
> - RX path with page pool buffer management
> - unicast/multicast filter.
> - Firmware link-event processing and carrier management
> 
> These changes enable the RNPGBE driver to support basic TX/RX
> network operations.
> 
> ---
> Changelog:
> v10 -> v11:
> [patch 1/5]:
> 1. Drop MSI and single-vector MSI-X support. Require at least two MSI-X
>    vectors, reserving vector 0 for mailbox events and using the remaining
>    vectors for the data path. (Jakub Kicinski)
> 2. Prevent NAPI from re-enabling queue interrupts after the device is down.
> 3. Set the real Tx/Rx queue counts before registering the netdev.
> 4. Preserve the configured Tx/Rx queue counts when tearing down q_vectors.
> [patch 2/5]:
> 1. Treat a Tx DMA timeout as a terminal AXI fault for the current driver
>    instance, and document why Tx cleanup ignores the repeated idle-wait error
>    after the fault is recorded.
> 2. Free q_vectors after an RCU grace period, matching the RCU-protected
>    statistics collection path.
> [patch 3/5]:
> 1. Arm Rx allocation retry timers only after NAPI has been enabled.
> 2. Mask queue interrupts again after disabling NAPI and calling
>    synchronize_net(), preventing a completed poll from re-enabling them
>    during device shutdown.
> 3. Clarify the hardware guarantee for the first RX descriptor length.
> [patch 4/5]:
> 1. Advertise unicast address filtering support to the networking core.
> 2. Program receive filters under the netdev address lock before enabling Rx,
>    and clarify the hardware multicast hash calculation.
> 3. Clear the RAR valid bit before changing an address, and set it only after
>    the complete new address has been written.
> [patch 5/5]:
> 1. Quiesce Tx DMA before notifying firmware that the port is down.
> 2. Remove the stale mailbox-event boolean return value and document why a
>    failed mailbox read is not retried as transient lock contention.
> 3. Document the firmware link-event retry rate and mailbox ACK protocol.
> 
> Links:
> v1:  https://lore.kernel.org/netdev/20260325091204.94015-1-dong100@mucse.com/
> v2:  https://lore.kernel.org/netdev/20260403025713.527841-1-dong100@mucse.com/
> v3:  https://lore.kernel.org/netdev/20260507081539.171844-1-dong100@mucse.com/
> v4:  https://lore.kernel.org/netdev/20260526033539.164061-1-dong100@mucse.com/
> v5:  https://lore.kernel.org/netdev/20260528023150.239532-1-dong100@mucse.com/
> v6:  https://lore.kernel.org/netdev/20260604112750.769215-1-dong100@mucse.com/
> v7:  https://lore.kernel.org/netdev/20260611100036.36370-1-dong100@mucse.com/
> v8:  https://lore.kernel.org/netdev/20260731120322.895955-1-dong100@mucse.com/
> v9:  https://lore.kernel.org/netdev/20260814111317.1741087-1-dong100@mucse.com/
> v10: https://lore.kernel.org/netdev/F44E6669E6C9E7C4+20260831073608.401988-2-dong100@mucse.com/
> 
> ---
> 
> Dong Yibo (5):
>   net: rnpgbe: Add interrupt handling
>   net: rnpgbe: Add basic TX packet transmission support
>   net: rnpgbe: Add RX packet reception support
>   net: rnpgbe: Add receive mode support
>   net: rnpgbe: Add link status handling support
> 
>  drivers/net/ethernet/mucse/Kconfig            |    1 +
>  drivers/net/ethernet/mucse/rnpgbe/Makefile    |    3 +-
>  drivers/net/ethernet/mucse/rnpgbe/rnpgbe.h    |  201 +-
>  .../net/ethernet/mucse/rnpgbe/rnpgbe_chip.c   |  118 +-
>  drivers/net/ethernet/mucse/rnpgbe/rnpgbe_hw.h |   43 +
>  .../net/ethernet/mucse/rnpgbe/rnpgbe_lib.c    | 2248 +++++++++++++++++
>  .../net/ethernet/mucse/rnpgbe/rnpgbe_lib.h    |   84 +
>  .../net/ethernet/mucse/rnpgbe/rnpgbe_main.c   |  158 +-
>  .../net/ethernet/mucse/rnpgbe/rnpgbe_mbx.c    |   32 +-
>  .../net/ethernet/mucse/rnpgbe/rnpgbe_mbx.h    |    1 +
>  .../net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.c |  235 ++
>  .../net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.h |   43 +
>  12 files changed, 3138 insertions(+), 29 deletions(-)
>  create mode 100644 drivers/net/ethernet/mucse/rnpgbe/rnpgbe_lib.c
>  create mode 100644 drivers/net/ethernet/mucse/rnpgbe/rnpgbe_lib.h
> 
> -- 
> 2.50.1
>