mbox series

[net-next,v2,0/8] new Fungible Ethernet driver

Message ID 20211231090833.98977-1-dmichail@fungible.com (mailing list archive)
Headers show
Series new Fungible Ethernet driver | expand

Message

Dimitris Michailidis Dec. 31, 2021, 9:08 a.m. UTC
This patch series contains a new network driver for the Ethernet
functionality of Fungible cards.

It contains two modules. The first one in patch 2 is a library module
that implements some of the device setup, queue managenent, and support
for operating an admin queue. These are placed in a separate module
because the cards provide a number of PCI functions handled by different
types of drivers and all use the same common means to interact with the
device. Each of the drivers will be relying on this library module for
them.

The remaining patches provide the Ethernet driver for the cards.

v2:
- Fix set_pauseparam, remove get_wol, remove module param (Andrew Lunn)
- Fix a register poll loop (Andrew)
- Replace constants defined with 'static const'
- make W=1 C=1 is clean
- Remove devlink FW update (Jakub)
- Remove duplicate ethtool stats covered by structured API (Jakub)

Dimitris Michailidis (8):
  PCI: add Fungible vendor ID to pci_ids.h
  net/fungible: Add service module for Fungible drivers
  net/funeth: probing and netdev ops
  net/funeth: ethtool operations
  net/funeth: devlink support
  net/funeth: add the data path
  net/funeth: add kTLS TX control part
  net/fungible: Kconfig, Makefiles, and MAINTAINERS

 MAINTAINERS                                   |    6 +
 drivers/net/ethernet/Kconfig                  |    1 +
 drivers/net/ethernet/Makefile                 |    1 +
 drivers/net/ethernet/fungible/Kconfig         |   27 +
 drivers/net/ethernet/fungible/Makefile        |    7 +
 .../net/ethernet/fungible/funcore/Makefile    |    5 +
 .../net/ethernet/fungible/funcore/fun_dev.c   |  846 ++++++++
 .../net/ethernet/fungible/funcore/fun_dev.h   |  151 ++
 .../net/ethernet/fungible/funcore/fun_hci.h   | 1187 +++++++++++
 .../net/ethernet/fungible/funcore/fun_queue.c |  620 ++++++
 .../net/ethernet/fungible/funcore/fun_queue.h |  178 ++
 drivers/net/ethernet/fungible/funeth/Kconfig  |   17 +
 drivers/net/ethernet/fungible/funeth/Makefile |   10 +
 .../net/ethernet/fungible/funeth/fun_port.h   |   97 +
 drivers/net/ethernet/fungible/funeth/funeth.h |  151 ++
 .../ethernet/fungible/funeth/funeth_devlink.c |   40 +
 .../ethernet/fungible/funeth/funeth_devlink.h |   13 +
 .../ethernet/fungible/funeth/funeth_ethtool.c | 1182 +++++++++++
 .../ethernet/fungible/funeth/funeth_ktls.c    |  181 ++
 .../ethernet/fungible/funeth/funeth_ktls.h    |   33 +
 .../ethernet/fungible/funeth/funeth_main.c    | 1773 +++++++++++++++++
 .../net/ethernet/fungible/funeth/funeth_rx.c  |  725 +++++++
 .../ethernet/fungible/funeth/funeth_trace.h   |  117 ++
 .../net/ethernet/fungible/funeth/funeth_tx.c  |  701 +++++++
 .../ethernet/fungible/funeth/funeth_txrx.h    |  242 +++
 include/linux/pci_ids.h                       |    2 +
 26 files changed, 8313 insertions(+)
 create mode 100644 drivers/net/ethernet/fungible/Kconfig
 create mode 100644 drivers/net/ethernet/fungible/Makefile
 create mode 100644 drivers/net/ethernet/fungible/funcore/Makefile
 create mode 100644 drivers/net/ethernet/fungible/funcore/fun_dev.c
 create mode 100644 drivers/net/ethernet/fungible/funcore/fun_dev.h
 create mode 100644 drivers/net/ethernet/fungible/funcore/fun_hci.h
 create mode 100644 drivers/net/ethernet/fungible/funcore/fun_queue.c
 create mode 100644 drivers/net/ethernet/fungible/funcore/fun_queue.h
 create mode 100644 drivers/net/ethernet/fungible/funeth/Kconfig
 create mode 100644 drivers/net/ethernet/fungible/funeth/Makefile
 create mode 100644 drivers/net/ethernet/fungible/funeth/fun_port.h
 create mode 100644 drivers/net/ethernet/fungible/funeth/funeth.h
 create mode 100644 drivers/net/ethernet/fungible/funeth/funeth_devlink.c
 create mode 100644 drivers/net/ethernet/fungible/funeth/funeth_devlink.h
 create mode 100644 drivers/net/ethernet/fungible/funeth/funeth_ethtool.c
 create mode 100644 drivers/net/ethernet/fungible/funeth/funeth_ktls.c
 create mode 100644 drivers/net/ethernet/fungible/funeth/funeth_ktls.h
 create mode 100644 drivers/net/ethernet/fungible/funeth/funeth_main.c
 create mode 100644 drivers/net/ethernet/fungible/funeth/funeth_rx.c
 create mode 100644 drivers/net/ethernet/fungible/funeth/funeth_trace.h
 create mode 100644 drivers/net/ethernet/fungible/funeth/funeth_tx.c
 create mode 100644 drivers/net/ethernet/fungible/funeth/funeth_txrx.h

Comments

Jakub Kicinski Jan. 1, 2022, 2:26 a.m. UTC | #1
On Fri, 31 Dec 2021 01:08:25 -0800 Dimitris Michailidis wrote:
> This patch series contains a new network driver for the Ethernet
> functionality of Fungible cards.
> 
> It contains two modules. The first one in patch 2 is a library module
> that implements some of the device setup, queue managenent, and support
> for operating an admin queue. These are placed in a separate module
> because the cards provide a number of PCI functions handled by different
> types of drivers and all use the same common means to interact with the
> device. Each of the drivers will be relying on this library module for
> them.
> 
> The remaining patches provide the Ethernet driver for the cards.

Still fails to build for me, I use:

make C=1 W=1 O=build_allmodconfig/ drivers/net/ethernet/fungible/
Dimitris Michailidis Jan. 3, 2022, 9:41 p.m. UTC | #2
On Fri, Dec 31, 2021 at 6:26 PM Jakub Kicinski <kuba@kernel.org> wrote:
>
> On Fri, 31 Dec 2021 01:08:25 -0800 Dimitris Michailidis wrote:
> > This patch series contains a new network driver for the Ethernet
> > functionality of Fungible cards.
> >
> > It contains two modules. The first one in patch 2 is a library module
> > that implements some of the device setup, queue managenent, and support
> > for operating an admin queue. These are placed in a separate module
> > because the cards provide a number of PCI functions handled by different
> > types of drivers and all use the same common means to interact with the
> > device. Each of the drivers will be relying on this library module for
> > them.
> >
> > The remaining patches provide the Ethernet driver for the cards.
>
> Still fails to build for me, I use:
>
> make C=1 W=1 O=build_allmodconfig/ drivers/net/ethernet/fungible/

I've figured it out and will be fixed in v3. There's one issue with O= and
one with builds on 32b architectures.