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

From: Dong Yibo

Date: Mon Aug 31 2026 - 03:37:54 EST


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/MSI 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:
v9 -> v10:
[patch 1/5]:
1. Release mailbox IRQ and workqueue resources during device
shutdown. (sashiko-nipa)
2. Correct the NAPI poll callback documentation and interrupt-mode
comment. (sashiko-nipa)
3. Clarify that the mailbox handler is only a deferred notification hook at
this stage of the series. (sashiko-nipa)
4. Update the interrupt-handling commit message. (sashiko-nipa)
[patch 2/5]:
1. Wake stopped TX queues after completion regardless of carrier
state. (sashiko-nipa)
2. Propagate TX DMA quiesce failures to ndo_open(), and prevent DMA
reconfiguration after a terminal AXI fault until chip reset and
reprobe. (sashiko-nipa)
3. Release TX resources and IRQs on TX configuration failure. (sashiko-nipa)
4. Cast pfvfnum to u32 before encoding it in the TX ring address
register. (sashiko-nipa)
[patch 3/5]:
1. Treat an RX DMA-idle timeout as a terminal AXI fault, keep DMA disabled,
and reject subsequent opens until the device is reset and
reprobed. (sashiko-nipa)
2. Cancel RX allocation-retry timers before releasing RX resources, and
avoid re-enabling queue interrupts after the device is down. (sashiko-nipa)
3. Init '.netdev, .queue_idx and .napi' for page_pool. (sashiko-nipa)
[patch 5/5]:
1. Add a preceding receive-mode patch with chip-level RX filtering and
ndo_set_rx_mode(), and program the GMAC frame filter before enabling
its receiver. (sashiko-nipa)
2. Treat RNPGBE_LINK_ST as wholly driver-owned and construct complete
snapshots instead of using read-modify-write. (sashiko-nipa)
3. Schedule the service task immediately after a valid link event while
retaining its periodic execution for future maintenance work. (sashiko-nipa)
4. Remove unused mailbox definitions and unrelated changes. (sashiko-nipa)
5. Validate link-up speeds and reject unsupported values without changing
the cached link state. (sashiko-nipa)
6. Use an invalid speed encoding for malformed link events so that the
firmware snapshot cannot match a valid link-down state. (sashiko-nipa)
7. Decode port_status as a per-port bitmap using BIT(hw->port). (sashiko-nipa)
8. Process at most one mailbox request per work item. Use a sequence
counter for the dedicated mailbox MSI-X vector to requeue work when
another mailbox interrupt arrives during processing; shared IRQ modes
continue to perform a coalesced mailbox check only. (sashiko-nipa)

Links:
v1: https://lore.kernel.org/netdev/20260325091204.94015-1-dong100@xxxxxxxxx/
v2: https://lore.kernel.org/netdev/20260403025713.527841-1-dong100@xxxxxxxxx/
v3: https://lore.kernel.org/netdev/20260507081539.171844-1-dong100@xxxxxxxxx/
v4: https://lore.kernel.org/netdev/20260526033539.164061-1-dong100@xxxxxxxxx/
v5: https://lore.kernel.org/netdev/20260528023150.239532-1-dong100@xxxxxxxxx/
v6: https://lore.kernel.org/netdev/20260604112750.769215-1-dong100@xxxxxxxxx/
v7: https://lore.kernel.org/netdev/20260611100036.36370-1-dong100@xxxxxxxxx/
v8: https://lore.kernel.org/netdev/20260731120322.895955-1-dong100@xxxxxxxxx/
v9: https://lore.kernel.org/netdev/20260814111317.1741087-1-dong100@xxxxxxxxx/

---


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 | 202 +-
.../net/ethernet/mucse/rnpgbe/rnpgbe_chip.c | 116 +-
drivers/net/ethernet/mucse/rnpgbe/rnpgbe_hw.h | 43 +
.../net/ethernet/mucse/rnpgbe/rnpgbe_lib.c | 2317 +++++++++++++++++
.../net/ethernet/mucse/rnpgbe/rnpgbe_lib.h | 84 +
.../net/ethernet/mucse/rnpgbe/rnpgbe_main.c | 152 +-
.../net/ethernet/mucse/rnpgbe/rnpgbe_mbx.c | 32 +-
.../net/ethernet/mucse/rnpgbe/rnpgbe_mbx.h | 1 +
.../net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.c | 233 ++
.../net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.h | 43 +
12 files changed, 3201 insertions(+), 26 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