From patchwork Fri Sep 7 15:21:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 44403 Return-Path: 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 41EC75A44; Fri, 7 Sep 2018 17:23:35 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0089.outbound.protection.outlook.com [104.47.42.89]) by dpdk.org (Postfix) with ESMTP id 23FCB4D3A for ; Fri, 7 Sep 2018 17:23:24 +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=8I0DqWAuRmi/1wPKsce7+vo2XmDUCi0nr6BoisTyJOo=; b=fqw6ooz6nY6Gm+nFDn20KNYooh3TaXbKsNUJrATB/1vsSX8dw3vsjsz84bz2V8QYqQxZhFDc99rqyVb23dCrIrYQ8f9TGKUcNdTak4JLePx0ZlYsq59/pzCBfmpRX/FA+82QvW+3AaZp9/XxHNVz2Ig1aygVyS+RqEP0t1B59T8= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Igor.Russkikh@aquantia.com; Received: from ubuntubox.rdc.aquantia.com (95.79.108.179) by BLUPR0701MB1652.namprd07.prod.outlook.com (2a01:111:e400:58c6::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1122.16; Fri, 7 Sep 2018 15:23:00 +0000 From: Igor Russkikh To: dev@dpdk.org Cc: pavel.belous@aquantia.com, Nadezhda.Krupnina@aquantia.com, igor.russkikh@aquantia.com, Simon.Edelhaus@aquantia.com, Corey Melton , Ashish Kumar Date: Fri, 7 Sep 2018 18:21:38 +0300 Message-Id: <1536333719-32155-1-git-send-email-igor.russkikh@aquantia.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-Originating-IP: [95.79.108.179] X-ClientProxiedBy: BN6PR20CA0060.namprd20.prod.outlook.com (2603:10b6:404:151::22) To BLUPR0701MB1652.namprd07.prod.outlook.com (2a01:111:e400:58c6::22) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2254a860-c44e-4ec1-37bf-08d614d5ccd0 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:BLUPR0701MB1652; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1652; 3:6a09+d9zvr+pCnKcJDDVT0EZpfYwCn4MYC097o0U2mJDh10/zzqINpiOh02cCCVlgrgNulkYAwjYmjHz8ApY90rWR/lrI1n28YyQt83P47/bw0tr/g53Y//laJORhOX8P16clXRpwJ3yghKSMAT52bWuM+H6GMNuuPabvjTn5FaZCtAAUE8UDwB7odc3PKjv/p4SOklHkySu1FqvUS+Euknyq8BLHYwI4Y3hmUPExkFsbFkEyfT5pLRG2MHmRD1S; 25:rOniL3ykFRBu83Tn7f8oY3HPlDFLXMM/Qr4mbFOwSpZA1l0pBLl3oYeBD4R3jIuylhZjOxh75pHaFfP0XeiKtf0BvsGfh1kRxOFL4Pp47B2lH1Y8z14ivvFO7pyM25ms0J1i0QbNlz96AqIWz7LzHDhckhAHuN83wPZrClp8e6gRjJzmL7aG5KdhPPN08MwxIQlgNlOHMdmtjQTf75pSweuJqT9cD8mCDYYKzfWytBe7HIhuQ6u2YeDc9HGKZNJMpox+KO3rMOtHc5z6ggrQVJoMaRnKyBnyxCqnorSLxh1+Vkh1uBiOu2M0ykOeg7GPBhj8MCw0OC5WxkfG6xtp4g==; 31:LI4jqY/wMm2lOc7MEcYZV0sYZUdM/WvAeiM0fS4L/yvTYScqQ6Q73zBvPgpFPOK3jwDsfS7UxYWzTgHRzaqCWlDC7r2BcC2qYRnWnJf8O5Bzy8cAHKBIUnm8zPg269N9kJKak0HyNTGzhFjVhFlCnEQTD4hNtr/qM6XjozxDqqrPQ5uuaA3CBCqyjzWebFxoUEzWxF/MikuVwHOEYMnDSoIrcAGDW7YChZoxLwEsgzM= X-MS-TrafficTypeDiagnostic: BLUPR0701MB1652: X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1652; 20:VnDP51jRkiRqlOOkHQFFxiXH79vMENMqIUMEtzu7bDYc084U3OzBZepxxNX0CJR/pI4cN/62xO4dCM2sy9AmloyM7+OHTUWoRagDwf/DH4mOaMWwnFNv7NqJhi3d/KvtmxvPO5mS6r+1sUQ+HavsTo0eK69a37yqVnPRLrLHtii3H9DO4Sou4O52njgtSGp8ENRRrMDocb9RrvxT64Sewg51NY3Oh8vVLzjcQ6v7lbJl3kwh+kx6PToNNH4JQyPmU3zjZxE+MY9wcEQy3XRp51XlRhIWzaegLcP7nyyL+uTSprrdlnP1zuwTQeqUtf93jBwAqJh/oa4k0PphKCCOQJs1n81/My4S8hgBekUqcENpnYykjU5N1jKIZ06eR4VJHGT/KiYs2Z7uPlg0WTMy0/MewBfPWSeXtZ9hn6mmZpP2G4S5MCaLs3P0bhT+no/ejuT9/4u8rQ5K2CdvlbskD9N/IVpOCFzfLCkAA2nNWAUbczE18AJkzLdGxja7pYgm; 4:/LdUm4qLYVSjylscy3duPHA2qBljTu4as/YQB8AanijKzP76/AYBAewy56RIlsNXZLQA983AGywtzxZFKRbd2txiB62XEcBRZzbSgrUzPEYymWTjqH5zuCuCd+HXWCGb8ff0Uu5INap6QOOhMtSWSqoX/w5abGUF2e/FnGqhvEIxD9TkchWgfJGF3NDjhI41HyNQuF6ej/9ZD8b/vlelVaX+LgSFvPSKKxhmx2Lx3ErLX+yMzrU/1UNHszSe4Sg5Q1etvA1JTjaQiMxrHu19Cg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(3231311)(944501410)(52105095)(10201501046)(3002001)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(201708071742011)(7699050); SRVR:BLUPR0701MB1652; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB1652; X-Forefront-PRVS: 07880C4932 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39850400004)(396003)(376002)(366004)(346002)(136003)(189003)(199004)(81156014)(81166006)(44832011)(8936002)(2351001)(486006)(106356001)(2361001)(105586002)(2906002)(50226002)(476003)(956004)(2616005)(305945005)(217873002)(7736002)(16586007)(316002)(54906003)(14444005)(16526019)(66066001)(26005)(7696005)(52116002)(8676002)(51416003)(186003)(386003)(68736007)(478600001)(6666003)(6916009)(6486002)(5660300001)(53936002)(47776003)(6306002)(4326008)(25786009)(86362001)(48376002)(50466002)(72206003)(6116002)(97736004)(966005)(36756003)(3846002); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1652; H:ubuntubox.rdc.aquantia.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-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1652; 23:j6GUjTc+F+cOMW9Rzrtl0T2G0Qi5A84g2VNpT8C?= qpSg4idkR+aDEyaXCVVwjePpu8rFkkieMcZJxL4y91ThmBc0nEUukGxk2ep4dlUPD/bnvthcuL/ytwWWUx+wxovob8TQcJ7yWY3mZd2dzq6GZx3yvUmN0o4zsF+ykzPrUYg3p6v5MLZThehTJ4duXi1QiiG9j8chmN6bzCrNmA2RILxRFThiw+WbLh0f2/psmPxyTlGPhUheFqLZ1pdIqlDqOeTgugjng22emxymstYzV96QgH7KYQLI/clTemXLsAhJqWrzQ7cGuwJ9FwMmKCU4zcjpu18VREnCd4FmWyi63CRIwtneUavuujbyzsvb9O7DnZOkUayZt6TyI+HCvNGTk2r5COcSpuPzP7HrJpiJaPdyJQxhE+eoZMaL+lfssYbwnzemnlZWxrDImRDxMiw9rBJJ6O8UMTdutc9bf02oqSXKHbdb/DvzpNL3W+F0i4LlPHamaMDPB+ulspswvkGH346QWtEA7xDYWoBEnXKpebPKZI103Jt0c7g2VVqhbdkiL/55n771N4NGfV75WoghNZb+zCpLPE1MST7zZ4fvNLquxeeN+xbJadRiSgquOdEf705/gEZE7ibuayTQzCrTzP8vw3k9ojJPRa7mFPVyfVpuMjJDvXVAYcJ9HPmETe3xWvSgqnC5/pLe5MIl5OK7Q1Fzhc3TAZSFmZoz+NfVzKeS4dWhRjalj5lXwSuipcu1ucA53p2zmMAaMnkyr2AJGsWQ8Va1pUq+jAvVUHsrpmuogMiczQNjMshZQmBu0zMufcFjjRNpTaVG9Iq8dTHIIXDn1wkB4OG9hbu2nBUWvUVboWOH+HBPn7idmOACzCP9U+qgZOTGFx8uS0j4F0cUGNx5xsFQptJSqyb4rm0s1PHp5HcGGqhcjtqHpJg4EWvBYZsXUqVIQulZli0Bnl9POjNQrBa+xCqmHfOyO57HJhzjH1ToD7I/3r/5A0TYJyUFXDbA3BrGV6zRCRPKWHG1KHrW2nA5nt/jkgCx+t7rIlZfAS2EyYbz6rBkRm5qwUZoq2X4SzSFAC3lbc/tqV+rQLCkRYXJkzNxcBZUWfW0gjk2yhQS5S6LJma98MFrRGtRL2PkP8j/uhi0w5x9pPwZIehcSX5UBKnmETfOIDMcjXXay1GC8//uX5InH4QoIUmgi6Jg8krRbkpnsEYvDSSQc3OmHvr0OFoPJM8QVbKeHuEHP6Wt4v2AJAMjShxzOmyTCZm0V/Q3IdtcuHgdv3WVJ X-Microsoft-Antispam-Message-Info: GA1i4omN1dMOcB3NAC2QzSFYFicYHly+sg+osJYA0ji6PzBJprPnfgW+/gC0wFuyQIbJ2DI8S/RnBrZp932S+BpTuuFA68HNh/GBlogXRbIByDNj3t5bbl6MQScU25cNMeE546y97maGG2FPbqk634gUUm5hekfRGCIGj1nYPXXAnO8AHYSHLq4XWuMLc9bwzYI/FBefDa4DUSJ7DA0Nh1DHql17Gt5ZEaqU5vsKS8Zjy3VjzEVJmdUT5qiB2XPoC477m6v2xJJd9WiLxoSZlWNx2w+7eJg1N8cNquAa3RcRKhMUVV52dmIaGGCJb4yn41HsghZl3m7jDRCNoN2w0TRtT/F/+lY7oUesHch2fq0= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1652; 6:5KashR87NKp+h1CBwUgbYqO8DbKexjcXJ3AOpFX/0adL9nZk69I1WiyFM2sZ+4CyPiqcIVp2f2LJH56spO5GWVbu7xOmE/OcG+1Vw3DgAkywf2FsGAaJOORQ/p+B/UhHD/7v7znfzaxTRi2J8gaW6SM9wX6lkuFAxvyRkgjrFJ7TSJSBKMsznY/vmkLhlL+7xRW+8CTk9icxatvLH9x1Zdkx7j3Qq5TN0ui+406KGsJG0w4jtaR240RK01ETTrvJKxMhRTLjV2CBlTQixmCHyCC1q46vr4lI0dNiiiaKrmXN1fcjfjQDjAQYrhlu+QW7Mlpl5noSpVJ5yHqtn06HbI8cbkpppkUm9re/RYQkdPtJ1iA3WKjVHDq3CAeGByGHOlj8t+Y7SqCOTx58L/hfIUXo4IdMo7pCx8zBEcDa6LzcFF/uMXSJYGXvFfz/8L5N1+cmd/aMIT53mRihEj9Rcw==; 5:lsCdBzE4SgPTe0zHVuBlJH1wL0ywlNqgZhIQsC6UM66sL9g+YS9bMoqHbKiKY89VZqhbUeenhB9b8vOmrfAUDLS3jn2yDq2XlBDR5ryIiceQ9ql+OFJIgWZWEHB4x/uNgnb/LlChI7ty5khRDXig1J5c0VS+6HxezzsmGYYOBbA=; 7:WOPIc/Cc+X4qibjeJTksG9oosd9E/a0F3fW5sBShST6p+KHAMH7Y0Xlipm6TYvgr11zYQx3dc/qrRipwyK3pcRqdxxF2vVoAMAEDEiYS2oq8AOTBfnRgS7hYLfANC9TZdh+nnxpeZ1kvnp9qK28HIfvgZqMT5FwQPEMa/1+zcl7Phlpmj55VcPyoJWFDQLCOes/RFuy92x48Rv3GEv64SxsdzR7dz9nHpilVA7kvdf5u++I92TetzUi80eUoLhBl SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Sep 2018 15:23:00.2870 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2254a860-c44e-4ec1-37bf-08d614d5ccd0 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 83e2e134-991c-4ede-8ced-34d47e38e6b1 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1652 Subject: [dpdk-dev] [PATCH 00/21] 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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. Igor Russkikh (11): net/atlantic: documentation and rel notes net/atlantic: logging macroes and some typedefs net/atlantic: hw_atl register declarations net/atlantic: b0 hardware layer main logic net/atlantic: firmware operations layer net/atlantic: hardware register access routines net/atlantic: rte device start, stop, initial configuration net/atlantic: RSS and RETA manipulation API net/atlantic: LED control DPDK and private APIs net/atlantic: device statistics, xstats net/atlantic: RX side structures and implementation Pavel Belous (10): net/atlantic: atlantic PMD driver skeleton net/atlantic: link status and interrupt management net/atlantic: add hw adapter structures and defines net/atlantic: flow control configuration net/atlantic: MAC address manipulations net/atlantic: eeprom and register manipulation routines net/atlantic: promisc and allmulti configuration net/atlantic: VLAN filters and offloads net/atlantic: device MTU and statuses net/atlantic: TX side structures and implementation config/common_base | 9 + doc/guides/nics/atlantic.rst | 59 + 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 | 2 + drivers/net/atlantic/Makefile | 69 + drivers/net/atlantic/atl_common.h | 97 + drivers/net/atlantic/atl_ethdev.c | 1717 +++++++++++++++ drivers/net/atlantic/atl_ethdev.h | 131 ++ drivers/net/atlantic/atl_hw_regs.c | 58 + drivers/net/atlantic/atl_hw_regs.h | 59 + drivers/net/atlantic/atl_logs.h | 55 + drivers/net/atlantic/atl_rxtx.c | 1324 +++++++++++ drivers/net/atlantic/atl_types.h | 234 ++ drivers/net/atlantic/hw_atl/hw_atl_b0.c | 504 +++++ drivers/net/atlantic/hw_atl/hw_atl_b0.h | 45 + drivers/net/atlantic/hw_atl/hw_atl_b0_internal.h | 151 ++ 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 | 2413 +++++++++++++++++++++ drivers/net/atlantic/hw_atl/hw_atl_utils.c | 942 ++++++++ drivers/net/atlantic/hw_atl/hw_atl_utils.h | 516 +++++ drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c | 623 ++++++ drivers/net/atlantic/meson.build | 28 + 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 + 30 files changed, 11352 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