[dpdk-dev] [PATCH v4 00/22] net/atlantic: Aquantia aQtion 10G NIC Family DPDK PMD driver
Igor Russkikh
Igor.Russkikh at aquantia.com
Tue Oct 9 11:31:26 CEST 2018
Hello DPDK community!
Aquantia would like to contribute PMD for aQtion AQC10X NIC family:
https://www.aquantia.com/products/aqtion/chips/
These are 10G ethernet NICs with various features.
We do base this work on parts of the existing native linux kernel
driver source (atlantic). Shared code is hw_atl hardware and registers access module.
We'd like to target this driver for 18.11 DPDK release timeline,
it'd be good to hear comments from the community on how feasible is this.
This patchset implements basic driver infrastructure,
vlan offloads, checksumm offloads, rss control,
multiring, jumbo frames and other features.
Later on, we plan to share HW MACSEC offloads, rxflows and other features.
version 4 changes:
- fixed build errors with -Werror on gcc7
- validated build on arm64, freebsd x86_64
- PPC marked as unsupported arch
- stdbool.h is used instead of bool redefines
version 3 changes:
- patchset fixed to be incrementally buildable
- extra includes removed and cleaned up
- license changed to dual GPL-BSD for pieces shared with linux
- removed extra logging #defines
- misc comments from previous review session
version 2 changes:
- fixed build on freebsd (no ETIME const)
- fixed a bunch of checkpatch failures and warnings
- removed extra CFLAGS disabled warning
- making static arrays const
Igor Russkikh (9):
net/atlantic: logging macroes and some typedefs
net/atlantic: hardware register access routines
net/atlantic: hw_atl register declarations
net/atlantic: firmware operations layer
net/atlantic: b0 hardware layer main logic
net/atlantic: RX side structures and implementation
net/atlantic: RSS and RETA manipulation API
net/atlantic: LED control DPDK and private APIs
net/atlantic: documentation and rel notes
Pavel Belous (13):
net/atlantic: atlantic PMD driver skeleton
net/atlantic: rte device start, stop, initial configuration
net/atlantic: TX/RX function prototypes
net/atlantic: TX side structures and implementation
net/atlantic: link status and interrupt management
net/atlantic: device statistics, xstats
net/atlantic: support for RX/TX descriptors information
net/atlantic: promisc and allmulti configuration
net/atlantic: flow control configuration
net/atlantic: MAC address manipulations
net/atlantic: VLAN filters and offloads
net/atlantic: eeprom and register manipulation routines
net/atlantic: support for read MAC registers for debug purposes
config/common_base | 5 +
config/defconfig_ppc_64-power8-linuxapp-gcc | 1 +
doc/guides/nics/atlantic.rst | 53 +
doc/guides/nics/features/atlantic.ini | 37 +
doc/guides/nics/index.rst | 1 +
doc/guides/rel_notes/release_18_11.rst | 5 +
drivers/net/Makefile | 1 +
drivers/net/atlantic/Makefile | 39 +
drivers/net/atlantic/atl_common.h | 96 +
drivers/net/atlantic/atl_ethdev.c | 1688 +++++++++++++++
drivers/net/atlantic/atl_ethdev.h | 111 +
drivers/net/atlantic/atl_hw_regs.c | 52 +
drivers/net/atlantic/atl_hw_regs.h | 53 +
drivers/net/atlantic/atl_logs.h | 31 +
drivers/net/atlantic/atl_rxtx.c | 1347 ++++++++++++
drivers/net/atlantic/atl_types.h | 186 ++
drivers/net/atlantic/hw_atl/hw_atl_b0.c | 510 +++++
drivers/net/atlantic/hw_atl/hw_atl_b0.h | 40 +
drivers/net/atlantic/hw_atl/hw_atl_b0_internal.h | 145 ++
drivers/net/atlantic/hw_atl/hw_atl_llh.c | 1490 +++++++++++++
drivers/net/atlantic/hw_atl/hw_atl_llh.h | 714 ++++++
drivers/net/atlantic/hw_atl/hw_atl_llh_internal.h | 2407 +++++++++++++++++++++
drivers/net/atlantic/hw_atl/hw_atl_utils.c | 942 ++++++++
drivers/net/atlantic/hw_atl/hw_atl_utils.h | 510 +++++
drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c | 618 ++++++
drivers/net/atlantic/meson.build | 15 +
drivers/net/atlantic/rte_pmd_atlantic.c | 19 +
drivers/net/atlantic/rte_pmd_atlantic.h | 44 +
drivers/net/atlantic/rte_pmd_atlantic_version.map | 4 +
drivers/net/meson.build | 1 +
mk/rte.app.mk | 1 +
31 files changed, 11166 insertions(+)
create mode 100644 doc/guides/nics/atlantic.rst
create mode 100644 doc/guides/nics/features/atlantic.ini
create mode 100644 drivers/net/atlantic/Makefile
create mode 100644 drivers/net/atlantic/atl_common.h
create mode 100644 drivers/net/atlantic/atl_ethdev.c
create mode 100644 drivers/net/atlantic/atl_ethdev.h
create mode 100644 drivers/net/atlantic/atl_hw_regs.c
create mode 100644 drivers/net/atlantic/atl_hw_regs.h
create mode 100644 drivers/net/atlantic/atl_logs.h
create mode 100644 drivers/net/atlantic/atl_rxtx.c
create mode 100644 drivers/net/atlantic/atl_types.h
create mode 100644 drivers/net/atlantic/hw_atl/hw_atl_b0.c
create mode 100644 drivers/net/atlantic/hw_atl/hw_atl_b0.h
create mode 100644 drivers/net/atlantic/hw_atl/hw_atl_b0_internal.h
create mode 100644 drivers/net/atlantic/hw_atl/hw_atl_llh.c
create mode 100644 drivers/net/atlantic/hw_atl/hw_atl_llh.h
create mode 100644 drivers/net/atlantic/hw_atl/hw_atl_llh_internal.h
create mode 100644 drivers/net/atlantic/hw_atl/hw_atl_utils.c
create mode 100644 drivers/net/atlantic/hw_atl/hw_atl_utils.h
create mode 100644 drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c
create mode 100644 drivers/net/atlantic/meson.build
create mode 100644 drivers/net/atlantic/rte_pmd_atlantic.c
create mode 100644 drivers/net/atlantic/rte_pmd_atlantic.h
create mode 100644 drivers/net/atlantic/rte_pmd_atlantic_version.map
--
2.7.4
More information about the dev
mailing list