[PATCH net-next 0/8] eth: mpnic: initial support for Meta Platforms NIC
From: Daniel Zahka <daniel.zahka@gmail.com>
Date: 2026-09-23 01:43:59
Also in:
bpf, lkml
Meta Platforms NIC is the second-generation NIC from Meta. There are quite a few high-level similarities to fbnic, but all of the CSRs and descriptors have been reshuffled, and new features have been added. Since the device is sufficiently different from fbnic, and the design of our FW is minimal, we have decided a separate driver is appropriate. Major new features compared to fbnic will take a while to land. This series includes only the bare-bones Tx/Rx datapath. Our high-level patch sequence and plan for the upcoming series is: 1. Core datapath (this series) 2. Basic offloads, RSS, and counters 3. Firmware mailbox support 4. Base ethtool operations This patch series was prepared in part with these LLM prompts: https://github.com/kuba-moo/ai-prompts/blob/main/driver-upstreaming-prompts.md The prompts were used to distill our fully-featured OOT driver into this minimal Tx/Rx capable upstream driver. We then performed human review on the output to create this posting. Jakub has made the prompts public in case people would like to take a look. Signed-off-by: Daniel Zahka <daniel.zahka@gmail.com> --- Daniel Zahka (7): eth: mpnic: add scaffolding for Meta Platforms NIC eth: mpnic: allocate MSI-X vectors eth: mpnic: implement Tx queue allocation and cleanup eth: mpnic: start and stop the Tx HW queues eth: mpnic: add a netdevice and basic Tx handling eth: mpnic: implement Rx queue allocation and cleanup eth: mpnic: add basic Rx handling Mohsin Bashir (1): eth: mpnic: add register init for the device drivers/net/ethernet/meta/Kconfig | 13 + drivers/net/ethernet/meta/Makefile | 1 + drivers/net/ethernet/meta/mpnic/Makefile | 16 + drivers/net/ethernet/meta/mpnic/mpnic.h | 66 ++ drivers/net/ethernet/meta/mpnic/mpnic_csr.h | 321 ++++++ drivers/net/ethernet/meta/mpnic/mpnic_init.c | 553 ++++++++++ drivers/net/ethernet/meta/mpnic/mpnic_irq.c | 64 ++ drivers/net/ethernet/meta/mpnic/mpnic_netdev.c | 181 +++ drivers/net/ethernet/meta/mpnic/mpnic_netdev.h | 35 + drivers/net/ethernet/meta/mpnic/mpnic_pci.c | 187 ++++ drivers/net/ethernet/meta/mpnic/mpnic_txrx.c | 1398 ++++++++++++++++++++++++ drivers/net/ethernet/meta/mpnic/mpnic_txrx.h | 147 +++ 12 files changed, 2982 insertions(+) --- base-commit: 6598456d72e48d779445bfec8f72114747f8b8d7 change-id: 20260918-linux-mpnic-8fa318d530fa Best regards, -- Daniel Zahka [off-list ref]