Message ID | cover.1539338074.git.igor.russkikh@aquantia.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1C33E1B49A; Fri, 12 Oct 2018 13:09:07 +0200 (CEST) Received: from NAM05-CO1-obe.outbound.protection.outlook.com (mail-eopbgr720071.outbound.protection.outlook.com [40.107.72.71]) by dpdk.org (Postfix) with ESMTP id 1095A1B463 for <dev@dpdk.org>; Fri, 12 Oct 2018 13:09:05 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=AQUANTIA1COM.onmicrosoft.com; s=selector1-aquantia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1/LoxCCbLs6vdvhD9OVzx+BsvdxOnaEKPw+pPbmvE+M=; b=BKweNx7uafN/BwT6Ke6V7F/5yyOrjFjQZEZA1pYsqt6x6m3beFTNnGqgqgnEGwvDPHdZtgSBGWytwzjte9teOnsQHICEFz9bDEiyBgYSexVZ6yAhGUb2ZC5+fR9uvFNCL6thwTDZImBl5upWxdrFgim66LiCZICBJau9DqQx1S8= Received: from BY1PR0701MB1660.namprd07.prod.outlook.com (10.162.110.22) by BY1PR0701MB1879.namprd07.prod.outlook.com (10.162.143.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1207.26; Fri, 12 Oct 2018 11:09:01 +0000 Received: from BY1PR0701MB1660.namprd07.prod.outlook.com ([fe80::346d:e756:e70e:17]) by BY1PR0701MB1660.namprd07.prod.outlook.com ([fe80::346d:e756:e70e:17%3]) with mapi id 15.20.1228.020; Fri, 12 Oct 2018 11:09:01 +0000 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> Thread-Topic: [PATCH v6 00/22] net/atlantic: Aquantia aQtion 10G NIC Family DPDK PMD driver Thread-Index: AQHUYhv6oaF86Bvp4kiTm2nmvKPbKw== Date: Fri, 12 Oct 2018 11:09:01 +0000 Message-ID: <cover.1539338074.git.igor.russkikh@aquantia.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM5PR0701CA0008.eurprd07.prod.outlook.com (2603:10a6:203:51::18) To BY1PR0701MB1660.namprd07.prod.outlook.com (2a01:111:e400:522a::22) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Igor.Russkikh@aquantia.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [95.79.108.179] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; BY1PR0701MB1879; 6:mR+KGZSOYczYBIzrVLOr9IB59HILQ1WkczvBxJngEbHpix5H5AxjuEsUkX/ub/R2Q/X3DgJHrOhXybSRfeA9qj2eOyWcTfOE09v5VhuBDpMYu4+o/kG8XuEbep6vMumMV3KujZ9tQ2Or/y8tNkBv7+hQPvspyoc+POfp3t8OsNk0MaJwXpK5/yrGcbsQ9mBfmclDo7ic/HEEG4ill9PbkODEpya27CQ6snMABtysbfFEhJ8XoHLqqCP1groZ7K9zhEp7CkWqW7JzgwGkYrZj4PjY26pgeEz6grGSgHyFIbNt1LaLi+XW3eKVgYdIXJSGYC75OCElb1FlpoH4fuE7QkplrPBvUGpgGu+ffUNPU1GCEqQGOjpoXYURFdaexcHsA/Fj7cbnabkENmO1Eb+v2dOBwWi9ziRwluSnrnJ/UpsBP+iJv790LZOsPxf2WPCVR6AoToPHzDYfaUKx+YNTZJiqAIrAFVmzz8sltAXZ8I0=; 5:II4l2ObkKpCO2pvXpPyQ/r+6HUbeembnzNswhn3NFuLS3k6u6LGZ8n25hP89Gld+TJLcROb/1waY5CyBr0VTumdzwv5u+B4Pr5uZsAoDEYKL/mJeNvX1H0FC+m1IgdKISlm34d9O7J5Fa8VJRA3C6fTaF6P3Sap87e91PV0ISgQ=; 7:xrv6GB/NfFDBWVrgazpfMFNdu/fJj09cbMyI4Uo67lQCEo2JPAMKum0sjdBp0gp0EXkoqPZKYCJzGnvnhtoIqWM1+SrPDXBHDfA4kNCiazoluQ59wfKxDDCNY2A2+T0b49OFE/QgnRVGIZZFBy9DO3znmWqVaq3bCoxJP5NRspGx6kpql4szI3N4ocZRn/VZELv7XsYbNKQZPiw3Avp8bA/2NdhIUey0PULO2O8M5bqJjBC149YY3oG24yZyYclO x-ms-office365-filtering-correlation-id: 30d5f345-071d-4172-9f1a-08d630331ccc x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:BY1PR0701MB1879; x-ms-traffictypediagnostic: BY1PR0701MB1879: x-microsoft-antispam-prvs: <BY1PR0701MB18792E9BCFFD826A168D5F4998E20@BY1PR0701MB1879.namprd07.prod.outlook.com> x-exchange-antispam-report-test: UriScan:(192374486261705); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3002001)(3231355)(944501410)(52105095)(149066)(150057)(6041310)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123560045)(201708071742011)(7699051)(76991067); SRVR:BY1PR0701MB1879; BCL:0; PCL:0; RULEID:; SRVR:BY1PR0701MB1879; x-forefront-prvs: 0823A5777B x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(979002)(346002)(376002)(366004)(136003)(39850400004)(396003)(189003)(199004)(6436002)(5640700003)(3846002)(68736007)(2900100001)(478600001)(6486002)(14454004)(2906002)(966005)(72206003)(71190400001)(71200400001)(26005)(2616005)(44832011)(102836004)(486006)(256004)(186003)(217873002)(105586002)(2351001)(6116002)(106356001)(6512007)(97736004)(6916009)(5660300001)(54906003)(6506007)(386003)(6306002)(476003)(14444005)(53936002)(5250100002)(2501003)(25786009)(8936002)(8676002)(4326008)(86362001)(305945005)(7736002)(99286004)(81166006)(1730700003)(81156014)(66066001)(52116002)(36756003)(316002)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR0701MB1879; H:BY1PR0701MB1660.namprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: aquantia.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: gPwKoN0eps0AU0HZqMiVMhoOWYTWC5Bs8XvmROb0BwExsIHWHYTWX53++rhjbLE5pYVQPEHeYcHbiE3Gsm1WtPKPrn8UfoQzd1pt2XnFekjhgYhkhi+QQoh7s//6u//Ihc/wZNtygKg3KYOZX66UcCWlndXCN+AEuDtiP2uX3hCmFHQIRwdT0SrpE6E3Y2ALIzQpfL6Qg69CMs2VnUQTizKqhfc/qAyZ/v2aWGkfMZetc2QhZSACI+iXy5tuhatyztCv59EXSWe4oOX6F1sCyl22ZZv5lwbCMOukbk/DA1FD2CKXCh3h+3IjAyhMjsD7ihxZoQOcAH3joxuoLREOiBAtsAjSzE1xxq7wos8Cq1c= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 30d5f345-071d-4172-9f1a-08d630331ccc X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Oct 2018 11:09:01.3538 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 83e2e134-991c-4ede-8ced-34d47e38e6b1 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0701MB1879 Subject: [dpdk-dev] [PATCH v6 00/22] net/atlantic: Aquantia aQtion 10G NIC Family DPDK PMD driver X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Series |
net/atlantic: Aquantia aQtion 10G NIC Family DPDK PMD driver
|
|
Message
Igor Russkikh
Oct. 12, 2018, 11:09 a.m. UTC
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
Comments
On 10/12/2018 12:09 PM, Igor Russkikh wrote: > 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 Series applied to dpdk-next-net/master, thanks. Please don't forget to send a web page patch [1] to add new device support to web site [2]. Thanks, ferruh [1]: http://dpdk.org/git/tools/dpdk-web [2]: https://core.dpdk.org/supported/
Hi Ferruh, On 12.10.2018 19:22, Ferruh Yigit wrote: > On 10/12/2018 12:09 PM, Igor Russkikh wrote: >> 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 > > Series applied to dpdk-next-net/master, thanks. > > Please don't forget to send a web page patch [1] to add new device support to > web site [2]. > Thank you for supporting us in this review and for all your comments! Regards, Igor