From: Igor Russkikh <Igor.Russkikh@aquantia.com>
To: "dev@dpdk.org" <dev@dpdk.org>
Cc: Pavel Belous <Pavel.Belous@aquantia.com>,
Igor Russkikh <Igor.Russkikh@aquantia.com>,
"ferruh.yigit@intel.com" <ferruh.yigit@intel.com>
Subject: [dpdk-dev] [PATCH v6 00/22] net/atlantic: Aquantia aQtion 10G NIC Family DPDK PMD driver
Date: Fri, 12 Oct 2018 11:09:01 +0000 [thread overview]
Message-ID: <cover.1539338074.git.igor.russkikh@aquantia.com> (raw)
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 6 changes:
- PKT_TX_VLAN_PKT replaced with PKT_TX_VLAN
- `rx_descriptor_done` removed
- adding PKT_RX_VLAN/STRIPPED into mbuf->ol_flags when vlan offloads are on
- commit headlines better naming
version 5 changes:
- MTU configuration is now in separate patch
- Custom LED api removed. Will resubmit separately later on
- Add product link to docs, rearranged adapter features file
- MAINTAINERS file update
- logging name prefix fixed
- rte_eth_copy_pci_info is not needed in init
- dev->security_ctx is not used (removed free)
- fixed adapter_stopped and dev stop/close states interactions
- return error if get_fw_version fails
- added port# to important error logs
- rte_eth_linkstatus_get instead of atomic64 ops
- swstats are now cleared in stats_reset
- xstats_reset callback declared as atl_dev_stats_reset
- stats_mapping_set removed
- check-git-logs fixes
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 (8):
net/atlantic: add logging structure
net/atlantic: add hardware registers access routines
net/atlantic: add hardware access layer
net/atlantic: implement firmware operations
net/atlantic: add b0 hardware layer
net/atlantic: implement Rx path
net/atlantic: implement RSS and RETA manipulation API
net/atlantic: add release notes
Pavel Belous (14):
net/atlantic: add atlantic PMD driver skeleton
net/atlantic: configure rte device start/stop
net/atlantic: implement core logic for Tx/Rx
net/atlantic: implement Tx path
net/atlantic: add link status and interrupt management
net/atlantic: implement device statistics
net/atlantic: add Rx/Tx descriptors information
net/atlantic: implement promisc and allmulti modes
net/atlantic: add flow control configuration
net/atlantic: implement MAC address manipulations
net/atlantic: implement MTU configuration
net/atlantic: implement VLAN filters and offloads
net/atlantic: implement EEPROM get/set
net/atlantic: read MAC registers for debug purposes
MAINTAINERS | 7 +
config/common_base | 5 +
config/defconfig_ppc_64-power8-linuxapp-gcc | 1 +
doc/guides/nics/atlantic.rst | 47 +
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 | 35 +
drivers/net/atlantic/atl_common.h | 96 +
drivers/net/atlantic/atl_ethdev.c | 1539 +++++++++++++
drivers/net/atlantic/atl_ethdev.h | 107 +
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 | 1357 ++++++++++++
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 | 12 +
drivers/net/atlantic/rte_pmd_atlantic_version.map | 4 +
drivers/net/meson.build | 1 +
mk/rte.app.mk | 1 +
30 files changed, 10954 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_version.map
--
2.7.4
next reply other threads:[~2018-10-12 11:09 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-12 11:09 Igor Russkikh [this message]
2018-10-12 11:09 ` [dpdk-dev] [PATCH v6 01/22] net/atlantic: add atlantic PMD driver skeleton Igor Russkikh
2018-10-12 11:09 ` [dpdk-dev] [PATCH v6 02/22] net/atlantic: add logging structure Igor Russkikh
2018-10-12 11:09 ` [dpdk-dev] [PATCH v6 03/22] net/atlantic: add hardware registers access routines Igor Russkikh
2018-10-12 11:09 ` [dpdk-dev] [PATCH v6 04/22] net/atlantic: add hardware access layer Igor Russkikh
2018-10-12 11:09 ` [dpdk-dev] [PATCH v6 05/22] net/atlantic: implement firmware operations Igor Russkikh
2018-10-12 11:09 ` [dpdk-dev] [PATCH v6 06/22] net/atlantic: add b0 hardware layer Igor Russkikh
2018-10-12 11:09 ` [dpdk-dev] [PATCH v6 07/22] net/atlantic: configure rte device start/stop Igor Russkikh
2018-10-12 11:09 ` [dpdk-dev] [PATCH v6 08/22] net/atlantic: implement core logic for Tx/Rx Igor Russkikh
2018-10-12 11:09 ` [dpdk-dev] [PATCH v6 09/22] net/atlantic: implement Rx path Igor Russkikh
2018-10-12 11:09 ` [dpdk-dev] [PATCH v6 10/22] net/atlantic: implement Tx path Igor Russkikh
2018-10-12 11:09 ` [dpdk-dev] [PATCH v6 11/22] net/atlantic: add link status and interrupt management Igor Russkikh
2018-10-12 11:09 ` [dpdk-dev] [PATCH v6 12/22] net/atlantic: implement device statistics Igor Russkikh
2018-10-12 11:09 ` [dpdk-dev] [PATCH v6 13/22] net/atlantic: add Rx/Tx descriptors information Igor Russkikh
2018-10-12 11:09 ` [dpdk-dev] [PATCH v6 14/22] net/atlantic: implement promisc and allmulti modes Igor Russkikh
2018-10-12 11:09 ` [dpdk-dev] [PATCH v6 15/22] net/atlantic: implement RSS and RETA manipulation API Igor Russkikh
2018-10-12 11:09 ` [dpdk-dev] [PATCH v6 16/22] net/atlantic: add flow control configuration Igor Russkikh
2018-10-12 11:09 ` [dpdk-dev] [PATCH v6 17/22] net/atlantic: implement MAC address manipulations Igor Russkikh
2018-10-12 11:09 ` [dpdk-dev] [PATCH v6 18/22] net/atlantic: implement MTU configuration Igor Russkikh
2018-10-12 11:09 ` [dpdk-dev] [PATCH v6 19/22] net/atlantic: implement VLAN filters and offloads Igor Russkikh
2018-10-12 11:09 ` [dpdk-dev] [PATCH v6 20/22] net/atlantic: implement EEPROM get/set Igor Russkikh
2018-10-12 11:09 ` [dpdk-dev] [PATCH v6 21/22] net/atlantic: read MAC registers for debug purposes Igor Russkikh
2018-10-12 11:09 ` [dpdk-dev] [PATCH v6 22/22] net/atlantic: add release notes Igor Russkikh
2018-10-12 16:22 ` [dpdk-dev] [PATCH v6 00/22] net/atlantic: Aquantia aQtion 10G NIC Family DPDK PMD driver Ferruh Yigit
2018-10-12 17:28 ` Igor Russkikh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1539338074.git.igor.russkikh@aquantia.com \
--to=igor.russkikh@aquantia.com \
--cc=Pavel.Belous@aquantia.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).