netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [net-next PATCH 00/15] eth: fbnic: Add network driver for Meta Platforms Host Network Interface
@ 2024-04-03 20:08 Alexander Duyck
  2024-04-03 20:08 ` [net-next PATCH 01/15] PCI: Add Meta Platforms vendor ID Alexander Duyck
                   ` (18 more replies)
  0 siblings, 19 replies; 163+ messages in thread
From: Alexander Duyck @ 2024-04-03 20:08 UTC (permalink / raw)
  To: netdev; +Cc: bhelgaas, linux-pci, Alexander Duyck, kuba, davem, pabeni

This patch set includes the necessary patches to enable basic Tx and Rx
over the Meta Platforms Host Network Interface. To do this we introduce a
new driver and driver and directories in the form of
"drivers/net/ethernet/meta/fbnic".

Due to submission limits the general plan to submit a minimal driver for
now almost equivalent to a UEFI driver in functionality, and then follow up
over the coming weeks enabling additional offloads and more features for
the device.

The general plan is to look at adding support for ethtool, statistics, and
start work on offloads in the next set of patches.

---

Alexander Duyck (15):
      PCI: Add Meta Platforms vendor ID
      eth: fbnic: add scaffolding for Meta's NIC driver
      eth: fbnic: Allocate core device specific structures and devlink interface
      eth: fbnic: Add register init to set PCIe/Ethernet device config
      eth: fbnic: add message parsing for FW messages
      eth: fbnic: add FW communication mechanism
      eth: fbnic: allocate a netdevice and napi vectors with queues
      eth: fbnic: implement Tx queue alloc/start/stop/free
      eth: fbnic: implement Rx queue alloc/start/stop/free
      eth: fbnic: Add initial messaging to notify FW of our presence
      eth: fbnic: Enable Ethernet link setup
      eth: fbnic: add basic Tx handling
      eth: fbnic: add basic Rx handling
      eth: fbnic: add L2 address programming
      eth: fbnic: write the TCAM tables used for RSS control and Rx to host


 MAINTAINERS                                   |    7 +
 drivers/net/ethernet/Kconfig                  |    1 +
 drivers/net/ethernet/Makefile                 |    1 +
 drivers/net/ethernet/meta/Kconfig             |   29 +
 drivers/net/ethernet/meta/Makefile            |    6 +
 drivers/net/ethernet/meta/fbnic/Makefile      |   18 +
 drivers/net/ethernet/meta/fbnic/fbnic.h       |  148 ++
 drivers/net/ethernet/meta/fbnic/fbnic_csr.h   |  912 ++++++++
 .../net/ethernet/meta/fbnic/fbnic_devlink.c   |   86 +
 .../net/ethernet/meta/fbnic/fbnic_drvinfo.h   |    5 +
 drivers/net/ethernet/meta/fbnic/fbnic_fw.c    |  823 ++++++++
 drivers/net/ethernet/meta/fbnic/fbnic_fw.h    |  133 ++
 drivers/net/ethernet/meta/fbnic/fbnic_irq.c   |  251 +++
 drivers/net/ethernet/meta/fbnic/fbnic_mac.c   | 1025 +++++++++
 drivers/net/ethernet/meta/fbnic/fbnic_mac.h   |   83 +
 .../net/ethernet/meta/fbnic/fbnic_netdev.c    |  470 +++++
 .../net/ethernet/meta/fbnic/fbnic_netdev.h    |   59 +
 drivers/net/ethernet/meta/fbnic/fbnic_pci.c   |  633 ++++++
 drivers/net/ethernet/meta/fbnic/fbnic_rpc.c   |  709 +++++++
 drivers/net/ethernet/meta/fbnic/fbnic_rpc.h   |  189 ++
 drivers/net/ethernet/meta/fbnic/fbnic_tlv.c   |  529 +++++
 drivers/net/ethernet/meta/fbnic/fbnic_tlv.h   |  175 ++
 drivers/net/ethernet/meta/fbnic/fbnic_txrx.c  | 1873 +++++++++++++++++
 drivers/net/ethernet/meta/fbnic/fbnic_txrx.h  |  125 ++
 include/linux/pci_ids.h                       |    2 +
 25 files changed, 8292 insertions(+)
 create mode 100644 drivers/net/ethernet/meta/Kconfig
 create mode 100644 drivers/net/ethernet/meta/Makefile
 create mode 100644 drivers/net/ethernet/meta/fbnic/Makefile
 create mode 100644 drivers/net/ethernet/meta/fbnic/fbnic.h
 create mode 100644 drivers/net/ethernet/meta/fbnic/fbnic_csr.h
 create mode 100644 drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
 create mode 100644 drivers/net/ethernet/meta/fbnic/fbnic_drvinfo.h
 create mode 100644 drivers/net/ethernet/meta/fbnic/fbnic_fw.c
 create mode 100644 drivers/net/ethernet/meta/fbnic/fbnic_fw.h
 create mode 100644 drivers/net/ethernet/meta/fbnic/fbnic_irq.c
 create mode 100644 drivers/net/ethernet/meta/fbnic/fbnic_mac.c
 create mode 100644 drivers/net/ethernet/meta/fbnic/fbnic_mac.h
 create mode 100644 drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
 create mode 100644 drivers/net/ethernet/meta/fbnic/fbnic_netdev.h
 create mode 100644 drivers/net/ethernet/meta/fbnic/fbnic_pci.c
 create mode 100644 drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
 create mode 100644 drivers/net/ethernet/meta/fbnic/fbnic_rpc.h
 create mode 100644 drivers/net/ethernet/meta/fbnic/fbnic_tlv.c
 create mode 100644 drivers/net/ethernet/meta/fbnic/fbnic_tlv.h
 create mode 100644 drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
 create mode 100644 drivers/net/ethernet/meta/fbnic/fbnic_txrx.h

--


^ permalink raw reply	[flat|nested] 163+ messages in thread

end of thread, other threads:[~2024-04-22 18:59 UTC | newest]

Thread overview: 163+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-03 20:08 [net-next PATCH 00/15] eth: fbnic: Add network driver for Meta Platforms Host Network Interface Alexander Duyck
2024-04-03 20:08 ` [net-next PATCH 01/15] PCI: Add Meta Platforms vendor ID Alexander Duyck
2024-04-03 20:20   ` Bjorn Helgaas
2024-04-03 20:08 ` [net-next PATCH 02/15] eth: fbnic: add scaffolding for Meta's NIC driver Alexander Duyck
2024-04-03 20:33   ` Andrew Lunn
2024-04-03 20:47     ` Alexander Duyck
2024-04-03 21:17       ` Andrew Lunn
2024-04-03 21:51         ` Alexander Duyck
2024-04-03 22:20           ` Andrew Lunn
2024-04-03 23:27             ` Alexander Duyck
2024-04-03 20:08 ` [net-next PATCH 03/15] eth: fbnic: Allocate core device specific structures and devlink interface Alexander Duyck
2024-04-03 20:35   ` Bjorn Helgaas
2024-04-03 20:08 ` [net-next PATCH 04/15] eth: fbnic: Add register init to set PCIe/Ethernet device config Alexander Duyck
2024-04-03 20:46   ` Andrew Lunn
2024-04-10 20:31     ` Jacob Keller
2024-04-03 20:08 ` [net-next PATCH 05/15] eth: fbnic: add message parsing for FW messages Alexander Duyck
2024-04-03 21:07   ` Jeff Johnson
2024-04-03 20:08 ` [net-next PATCH 06/15] eth: fbnic: add FW communication mechanism Alexander Duyck
2024-04-03 20:08 ` [net-next PATCH 07/15] eth: fbnic: allocate a netdevice and napi vectors with queues Alexander Duyck
2024-04-03 20:58   ` Andrew Lunn
2024-04-03 22:15     ` Alexander Duyck
2024-04-03 22:26       ` Andrew Lunn
2024-04-03 20:08 ` [net-next PATCH 08/15] eth: fbnic: implement Tx queue alloc/start/stop/free Alexander Duyck
2024-04-03 20:09 ` [net-next PATCH 09/15] eth: fbnic: implement Rx " Alexander Duyck
2024-04-04 11:42   ` kernel test robot
2024-04-03 20:09 ` [net-next PATCH 10/15] eth: fbnic: Add initial messaging to notify FW of our presence Alexander Duyck
2024-04-03 20:09 ` [net-next PATCH 11/15] eth: fbnic: Enable Ethernet link setup Alexander Duyck
2024-04-03 21:11   ` Andrew Lunn
2024-04-05 21:51   ` Andrew Lunn
2024-04-21 23:21     ` Alexander Duyck
2024-04-22 15:52       ` Andrew Lunn
2024-04-22 18:59         ` Alexander H Duyck
2024-04-03 20:09 ` [net-next PATCH 12/15] eth: fbnic: add basic Tx handling Alexander Duyck
2024-04-03 20:09 ` [net-next PATCH 13/15] eth: fbnic: add basic Rx handling Alexander Duyck
2024-04-09 11:47   ` Yunsheng Lin
2024-04-09 15:08     ` Alexander Duyck
2024-04-10 11:54       ` Yunsheng Lin
2024-04-10 15:03         ` Alexander Duyck
2024-04-12  8:43           ` Yunsheng Lin
2024-04-12  9:47             ` Yunsheng Lin
2024-04-12 15:05             ` Alexander Duyck
2024-04-15 13:19               ` Yunsheng Lin
2024-04-15 15:03                 ` Alexander Duyck
2024-04-15 17:11                   ` Jakub Kicinski
2024-04-15 18:03                     ` Alexander Duyck
2024-04-15 18:19                       ` Jakub Kicinski
2024-04-15 18:55                         ` Alexander Duyck
2024-04-15 22:01                           ` Jakub Kicinski
2024-04-15 23:57                             ` Alexander Duyck
2024-04-16  0:24                               ` Jakub Kicinski
2024-04-16 13:25                             ` Yunsheng Lin
2024-04-16 14:35                               ` Alexander Duyck
2024-04-16 14:05                       ` Alexander Lobakin
2024-04-16 14:46                         ` Alexander Duyck
2024-04-16 18:26                           ` Andrew Lunn
2024-04-17  8:14                           ` Leon Romanovsky
2024-04-17 16:09                             ` Alexander Duyck
2024-04-17 10:39                           ` Alexander Lobakin
2024-04-03 20:09 ` [net-next PATCH 14/15] eth: fbnic: add L2 address programming Alexander Duyck
2024-04-03 20:09 ` [net-next PATCH 15/15] eth: fbnic: write the TCAM tables used for RSS control and Rx to host Alexander Duyck
2024-04-03 20:42 ` [net-next PATCH 00/15] eth: fbnic: Add network driver for Meta Platforms Host Network Interface Bjorn Helgaas
2024-04-04 11:37 ` Jiri Pirko
2024-04-04 14:45   ` Alexander Duyck
2024-04-04 15:24     ` Andrew Lunn
2024-04-04 15:37       ` Jakub Kicinski
2024-04-05  3:08         ` David Ahern
2024-04-04 15:36     ` Jiri Pirko
2024-04-04 18:35       ` Andrew Lunn
2024-04-04 19:05         ` Leon Romanovsky
2024-04-04 19:22       ` Alexander Duyck
2024-04-04 20:25         ` Jakub Kicinski
2024-04-04 21:59           ` John Fastabend
2024-04-04 23:50             ` Jakub Kicinski
2024-04-05  0:11               ` Alexander Duyck
2024-04-05  2:38                 ` Jakub Kicinski
2024-04-05 15:41                   ` Alexander Duyck
2024-04-08  6:18                     ` Leon Romanovsky
2024-04-08 15:26                       ` Alexander Duyck
2024-04-08 18:41                         ` Leon Romanovsky
2024-04-08 20:43                           ` Alexander Duyck
2024-04-08 21:49                             ` Florian Fainelli
2024-04-08 21:52                               ` Florian Fainelli
2024-04-09  8:18                             ` Leon Romanovsky
2024-04-09 14:43                               ` Alexander Duyck
2024-04-09 15:39                                 ` Jason Gunthorpe
2024-04-09 16:31                                   ` Alexander Duyck
2024-04-09 17:12                                     ` Jason Gunthorpe
2024-04-09 18:38                                       ` Alexander Duyck
2024-04-09 18:54                                         ` Jason Gunthorpe
2024-04-09 20:03                                           ` Alexander Duyck
2024-04-09 23:11                                             ` Jason Gunthorpe
2024-04-10  9:37                                             ` Jiri Pirko
2024-04-09 19:15                                         ` Leon Romanovsky
2024-04-05  7:11                 ` Paolo Abeni
2024-04-05 12:26                   ` Jason Gunthorpe
2024-04-05 13:06                     ` Daniel Borkmann
2024-04-05 14:24                     ` Alexander Duyck
2024-04-05 15:17                       ` Jason Gunthorpe
2024-04-05 18:38                         ` Alexander Duyck
2024-04-05 19:02                           ` Jason Gunthorpe
2024-04-06 16:05                             ` Alexander Duyck
2024-04-06 16:49                               ` Andrew Lunn
2024-04-06 17:16                                 ` Alexander Duyck
2024-04-08 15:04                               ` Jakub Kicinski
2024-04-08 19:50                               ` Mina Almasry
2024-04-08 11:50                           ` Jiri Pirko
2024-04-08 15:46                             ` Alexander Duyck
2024-04-08 16:51                               ` Jiri Pirko
2024-04-08 17:32                                 ` John Fastabend
2024-04-09 11:01                                   ` Jiri Pirko
2024-04-09 13:11                                     ` Alexander Lobakin
2024-04-09 13:18                                       ` Jason Gunthorpe
2024-04-09 14:08                                       ` Jakub Kicinski
2024-04-09 14:27                                         ` Jakub Kicinski
2024-04-09 14:41                                       ` Jiri Pirko
2024-04-10 11:45                                         ` Alexander Lobakin
2024-04-10 12:12                                           ` Jiri Pirko
2024-04-08 21:36                                 ` Florian Fainelli
2024-04-09 10:56                                   ` Jiri Pirko
2024-04-09 13:05                                     ` Florian Fainelli
2024-04-09 14:28                                       ` Jiri Pirko
2024-04-09 17:42                                         ` Florian Fainelli
2024-04-09 18:38                                           ` Leon Romanovsky
2024-04-08 18:16                               ` Jason Gunthorpe
2024-04-09 16:53                       ` Edward Cree
2024-04-08 11:37                   ` Jiri Pirko
2024-04-04 23:50             ` Alexander Duyck
2024-04-08 11:05             ` Jiri Pirko
2024-04-08 10:54         ` Jiri Pirko
2024-04-05 14:01 ` Przemek Kitszel
2024-04-06 16:53   ` Alexander Duyck
2024-04-09 20:51 ` Jakub Kicinski
2024-04-09 21:06   ` Willem de Bruijn
2024-04-10  7:26     ` Jiri Pirko
2024-04-10 21:30       ` Jacob Keller
2024-04-10 22:19         ` Andrew Lunn
2024-04-11  0:31           ` Jacob Keller
2024-04-09 23:42   ` Andrew Lunn
2024-04-10 15:56     ` Alexander Duyck
2024-04-10 20:01       ` Andrew Lunn
2024-04-10 21:07         ` Alexander Duyck
2024-04-10 22:37           ` Andrew Lunn
2024-04-11 16:00             ` Alexander Duyck
2024-04-11 17:32               ` Andrew Lunn
2024-04-11 23:12                 ` Alexander Duyck
2024-04-11  6:39           ` Jiri Pirko
2024-04-11 16:46             ` Alexander Duyck
2024-04-10  7:42   ` Jiri Pirko
2024-04-10 12:50     ` Przemek Kitszel
2024-04-10 13:46     ` Jakub Kicinski
2024-04-10 15:12       ` Jiri Pirko
2024-04-10 17:35         ` Jakub Kicinski
2024-04-10 17:39           ` Florian Fainelli
2024-04-10 17:56             ` Jakub Kicinski
2024-04-10 18:00               ` Florian Fainelli
2024-04-10 20:03                 ` Jakub Kicinski
2024-04-10 18:01               ` Alexander Duyck
2024-04-10 18:29                 ` Florian Fainelli
2024-04-10 19:58                   ` Jakub Kicinski
2024-04-10 22:03                     ` Jacob Keller
2024-04-11  6:31                       ` Jiri Pirko
2024-04-11 16:22                         ` Jacob Keller
2024-04-11  6:34                 ` Jiri Pirko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).