DPDK patches and discussions
 help / color / mirror / Atom feed
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 v5 00/23] net/atlantic: Aquantia aQtion 10G NIC Family DPDK PMD driver
Date: Thu, 11 Oct 2018 10:34:48 +0000	[thread overview]
Message-ID: <cover.1539249721.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 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 (9):
  net: atlantic: maintainers and documentation
  net/atlantic: logging macroses and some typedefs
  net/atlantic: hardware registers access routines
  net/atlantic: atlantic hardware layer routines
  net/atlantic: firmware operations layer
  net/atlantic: b0 hardware layer main logic
  net/atlantic: receive side structures and implementation
  net/atlantic: support for RSS and RETA manipulation API
  net/atlantic: release notes

Pavel Belous (14):
  net/atlantic: atlantic PMD driver skeleton
  net/atlantic: rte device start/stop/initial configuration
  net/atlantic: initial support for Tx/Rx
  net/atlantic: transmit side structures and implementation
  net/atlantic: link status and interrupt management
  net/atlantic: device statistics support
  net/atlantic: support for Rx/Tx descriptors information
  net/atlantic: promisc and allmulti configuration
  net/atlantic: flow control configuration
  net/atlantic: support for MAC address manipulations
  net/atlantic: support for MTU configuration
  net/atlantic: support for VLAN filters and offloads
  net/atlantic: support for 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             |   36 +
 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                 | 1540 +++++++++++++
 drivers/net/atlantic/atl_ethdev.h                 |  108 +
 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                   | 1367 ++++++++++++
 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, 10965 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

             reply	other threads:[~2018-10-11 10:34 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-11 10:34 Igor Russkikh [this message]
2018-10-11 10:34 ` [dpdk-dev] [PATCH v5 01/23] net/atlantic: atlantic PMD driver skeleton Igor Russkikh
2018-10-11 10:34 ` [dpdk-dev] [PATCH v5 02/23] net: atlantic: maintainers and documentation Igor Russkikh
2018-10-11 10:34 ` [dpdk-dev] [PATCH v5 03/23] net/atlantic: logging macroses and some typedefs Igor Russkikh
2018-10-11 10:34 ` [dpdk-dev] [PATCH v5 04/23] net/atlantic: hardware registers access routines Igor Russkikh
2018-10-11 10:35 ` [dpdk-dev] [PATCH v5 05/23] net/atlantic: atlantic hardware layer routines Igor Russkikh
2018-10-11 10:35 ` [dpdk-dev] [PATCH v5 06/23] net/atlantic: firmware operations layer Igor Russkikh
2018-10-11 10:35 ` [dpdk-dev] [PATCH v5 07/23] net/atlantic: b0 hardware layer main logic Igor Russkikh
2018-10-11 10:35 ` [dpdk-dev] [PATCH v5 08/23] net/atlantic: rte device start/stop/initial configuration Igor Russkikh
2018-10-11 10:35 ` [dpdk-dev] [PATCH v5 09/23] net/atlantic: initial support for Tx/Rx Igor Russkikh
2018-10-11 10:35 ` [dpdk-dev] [PATCH v5 10/23] net/atlantic: receive side structures and implementation Igor Russkikh
2018-10-11 10:35 ` [dpdk-dev] [PATCH v5 11/23] net/atlantic: transmit " Igor Russkikh
2018-10-11 12:58   ` Ferruh Yigit
2018-10-11 10:35 ` [dpdk-dev] [PATCH v5 12/23] net/atlantic: link status and interrupt management Igor Russkikh
2018-10-11 10:35 ` [dpdk-dev] [PATCH v5 13/23] net/atlantic: device statistics support Igor Russkikh
2018-10-11 10:35 ` [dpdk-dev] [PATCH v5 14/23] net/atlantic: support for Rx/Tx descriptors information Igor Russkikh
2018-10-11 12:57   ` Ferruh Yigit
2018-10-11 10:35 ` [dpdk-dev] [PATCH v5 15/23] net/atlantic: promisc and allmulti configuration Igor Russkikh
2018-10-11 10:35 ` [dpdk-dev] [PATCH v5 16/23] net/atlantic: support for RSS and RETA manipulation API Igor Russkikh
2018-10-11 10:35 ` [dpdk-dev] [PATCH v5 17/23] net/atlantic: flow control configuration Igor Russkikh
2018-10-11 10:35 ` [dpdk-dev] [PATCH v5 18/23] net/atlantic: support for MAC address manipulations Igor Russkikh
2018-10-11 10:35 ` [dpdk-dev] [PATCH v5 19/23] net/atlantic: support for MTU configuration Igor Russkikh
2018-10-11 10:35 ` [dpdk-dev] [PATCH v5 20/23] net/atlantic: support for VLAN filters and offloads Igor Russkikh
2018-10-11 12:58   ` Ferruh Yigit
2018-10-11 10:35 ` [dpdk-dev] [PATCH v5 21/23] net/atlantic: support for EEPROM get/set Igor Russkikh
2018-10-11 10:35 ` [dpdk-dev] [PATCH v5 22/23] net/atlantic: read MAC registers for debug purposes Igor Russkikh
2018-10-11 10:35 ` [dpdk-dev] [PATCH v5 23/23] net/atlantic: release notes Igor Russkikh
2018-10-11 13:11 ` [dpdk-dev] [PATCH v5 00/23] net/atlantic: Aquantia aQtion 10G NIC Family DPDK PMD driver Ferruh Yigit
2018-10-11 13:26   ` 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.1539249721.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).