From patchwork Sat Sep 29 10:30:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 45664 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 3A25C1B10A; Sat, 29 Sep 2018 12:31:00 +0200 (CEST) Received: from NAM05-DM3-obe.outbound.protection.outlook.com (mail-eopbgr730076.outbound.protection.outlook.com [40.107.73.76]) by dpdk.org (Postfix) with ESMTP id B10D81B0FA for ; Sat, 29 Sep 2018 12:30:58 +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=iE4Ku8B7DkwYaNbiIER3iqSmm45hCs9dleMKCn5fUiU=; b=OP9wVlqXa4klMT2NuZQNtPB1+wUtYFVUCY/DIP6dHK8bRdvvGIhoXZFQdG/Zx+PEdtHHPBjeLMhuLSUxjqpKIcTE4uQVCM/Bs0iCGhDwIOX/c2YgXnpHLlOrVbVs9vFvRTt4lk2gtRpIIMiTP17+r3xUue4nxtmsesSwi7CJQXU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Igor.Russkikh@aquantia.com; Received: from ubuntubox.rdc.aquantia.com (95.79.108.179) by BLUPR0701MB1650.namprd07.prod.outlook.com (2a01:111:e400:58c6::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1185.22; Sat, 29 Sep 2018 10:30:55 +0000 From: Igor Russkikh To: dev@dpdk.org Cc: pavel.belous@aquantia.com, igor.russkikh@aquantia.com Date: Sat, 29 Sep 2018 13:30:14 +0300 Message-Id: X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-Originating-IP: [95.79.108.179] X-ClientProxiedBy: VI1P193CA0009.EURP193.PROD.OUTLOOK.COM (2603:10a6:800:bd::19) To BLUPR0701MB1650.namprd07.prod.outlook.com (2a01:111:e400:58c6::20) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1f5d4b9e-6096-4f68-ea0a-08d625f6a3ca X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534165)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:BLUPR0701MB1650; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1650; 3:oyrWFnYwIWVXx38XFXzbAkj3TX44Q/UlNqnUwuM5H6t3eh+l1BBmPqJrBHtlbRLiw7BNoUJdybhvTN6hoDnVgVf2ocN8NEpLPuCD2Z4kRUpMaowzxaND6uEPBCqweXMn/JLoQtpx3yUUoA1PtuGP50z63CAeNcWWbiw/ZMEHljSLIwSXXYzHPQ6JbUpx9kBsZA8IkP30JBauipZaMIYuSd0nUdaaxaSM2KKS+WY+DkWQz+L1v4IAytzXusaHYcbS; 25:5L9/826uCVmMXht+qvnSnNoj5G5f/MBmo0LpL8BMrT0Qn/2pWVtlljwZgmz/MXPstxiXuVrLWLipVNK/AULN97GAw6Lan9nT0sVRYF/dC8PQKBbVO2MBaAi1w79rJM6OjGfeGmK99xX1tHPOtt5kRuNAzaefS357aGG4nSlWnmprN660tPiphu0KOJwXrI44qasNjoy8UOOB+eeMfZIye1xpXOfJkcGWlPlnbTNKkPMZmR3C8dT71YfUt0V/1VHSCyKCWmpdBTDFS/+xqQ6tY4JzgukxuLvVQRl/sZuKt7UjKTdOHbCv9GOryG0ylPp2TKGX6TEedAr7j3vnfLx7h3pcqKbP3OnRR9dKZb49gcI=; 31:D0/wByTJCHU9/lvHdHLSFi1staNts51Jyxts/rNoilB1xZxPxJTwQdUdmzeoY2phvqVxO+R0tuWgTsbB69Vtvlq77KWLMz6UiRoaUgm42RlgNdi1Vc4hcVsJ5o38vqupIGQRsrAsGcexrzqoItD/9RkUoOMcIU8vKdN2vffQ5fjAiGrwdiADbVw/sU6SfUN9YDgZwIgB9EbdRFQoKm5cgNfAw2W8QpyLf3js8A2Uer4= X-MS-TrafficTypeDiagnostic: BLUPR0701MB1650: X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1650; 20:4qa6+its2Kg3w/qxDochQXTRmfrjkn1HLj1Oo+zspgwkcbDsmqGH4O+VKksDFuE1g/jaFFYnAvlj2tMG7NEoErwO3I1soK3uHdni39vM4pzVYQ4zzE47+Yq00V3UGkXgZ7T/Y3fq08W1XD/jqXE/SRa/qCqJjPyRA5j9ImvgR7DRQi4GrrAXyZdCN8d5rhACIiBdKCkbFLK07ShN/fBxmE0CdMtW9QrPjowUhRU3uvvYRrSGN4DTOnmW4RN6tOT2SgraaWM5RT0x1iWJoropk37U99KOw0EZsUBe5Zmy4Vp5q9byB5cs82rcmU51AgsENoTqiPC/h5RGHGipAUNpAN+aQ1lvG9m0rARrq20TQeQ/RmzgqEJHsUqyg9a0gUcIORKmmkLbpOECehqwzRiVPYDrOPfn+j6RZnq9GrxpCDGy6pQiRMHVCc0mOnvnpyJxwBnZykRQJjhVZ1O/kGk8wGu3fZSvJxjAhAIsmDQWmmGDR1VPQzmdwQxMVLZKdoBp; 4:WknZa7jfXZhQGOoRPBHb9FJZGlobjejsQhQAflc+4Jtcyfhe7AJySA7OoKt07TZ/UDPSsrdXECvmPMdHaUuUY1wC4tiqENQ0NOfINV2VR+F0lB0CSSByK4veatvm7zXuEYXMbTWXBJR9mBPtBwEUIpCBRcK/VjWYjeq7ljvHNed+to3UuvbNTIRdFWDmxDW3UBtuGSxHpREUvmwhd6TrV77w1KjBLpi2iEBdrf/Qq7j9MnzeFbmKRrct7nBo5e7U0Kckqpy4LxFZsN0TMiI27g== 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)(8121501046)(5005006)(10201501046)(3002001)(93006095)(93001095)(3231355)(944501410)(52105095)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123564045)(20161123562045)(20161123560045)(201708071742011)(7699051); SRVR:BLUPR0701MB1650; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB1650; X-Forefront-PRVS: 0810818DA0 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39850400004)(366004)(376002)(346002)(396003)(136003)(189003)(199004)(6486002)(105586002)(16586007)(6116002)(53936002)(3846002)(386003)(72206003)(2361001)(966005)(478600001)(7736002)(2351001)(106356001)(48376002)(6306002)(25786009)(305945005)(50466002)(66066001)(486006)(47776003)(44832011)(186003)(476003)(2616005)(956004)(107886003)(7696005)(51416003)(52116002)(26005)(6666003)(6916009)(2906002)(97736004)(16526019)(14444005)(217873002)(86362001)(5660300001)(50226002)(34290500001)(68736007)(81166006)(81156014)(36756003)(8676002)(8936002)(4326008)(316002); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1650; 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; BLUPR0701MB1650; 23:EOagzMSEE1xKDOnMADUgm0fmuAPFL5goE1+TP9U?= fN8OewVHAnR2bFoCl+OHUWvBg3AgSZm/XZp1i4tHtdBow4cFydi8mH2sge/8iMEQY0LGNMRqwhJGvVkeAU6Qpo1zGkE8IJY5OFdG9qCRTUF9mTI9ojo++EyZzk+EV3e+wqc1txiKJTziBYS57WspmKopYizEBoei3lV9QhXxRxMCnGaNbSa1zXiMXJdcgELND+lXI0xndenwRDHzorSzH9zIFUd6zwZffxeyP5F3Y2cqGiNsc8YB1HGeawsjPcwRikkR42nZYp3BtZ4xpqKV0qoF10H8hyl2p9QUG9P2ebtKPz8U2GV+eliUaVx+0rEJwH+rWBKHZ6LZAhSkXe6nojb+MKtoA3qkJCOV/GHoSsOnim0DpsufZ/qduVEAlNjPIOJn9TsoNVSBmcQvBPL9TvmPn+JaWovm9WJ1EAe+oEY91sI9UvRZ7bCFYtbLyWNZCXrfjB/2y6VorV4K3954E2+Q94J8+VJMS83ChXtrFE9ytWRoU5DmpfYR5yjs6e/P+pIfo1s8rJJMUEe6igGAbDHvOV2GYkqjsuvdtIOrFs52yhH0fUDbkDSST5i8hj7r625S9q68L/jAq2C8cPjcByD74oxJi1tJdfBNq5a3nnsSvc00rUSirjFyKFZQryESV5dPnZ0MrUzyYDJBgfFIWlzFf1hjZjpslJYh3kRMq95TubdvGG2IXyb81XmRRJiPUuPrhr052I50y7AY4+U5YYb6K98Kv7HhF0sul3+hmZZRak2nTIQuTf3aSGI2BI/216VMEZjvxXdJ1eRbXwDzRoo2kAC2s0O9VoGND14dLscSJ2d/mZPKK4i7wBDKUdDtYLVY9gBIIE8N6AbMkLu0lAY9TxHTsHZXhKZxXV0NkUqq3ppzyMwMPpbjykQgxNoQmiry36HRwqQFvt2ETmrwDauN5b3qSKvDx1M6tIbLC/Av1gwEJH4doa7jlxQt4b6TgfvbTaOpi4cKs+xmyyMnYcW2WsxxoXVbdbY0PtsVBth3SWulHMqeIrsncDUJx7kJiT91oYfqKP+K0olC7Iwmd+22PyvbcKFVlXL+YzfUTewk1Gg7Aw/C9sBonhimvwdkBK4nCNgpWyG5wtCQbsoxE/640hpYESuZJA4ai0qRMTqhA7aZdCCCM//YhxccdLRfC14HXxIukU7YIkr4OElZ523GeCU6QrAWrzkC2HrHNqPE8M7nA48+pZH1t8j38ahLp5BuFVSZ4YqG3lsXXwjoJhA3lxrzyGPuWAkl6DZxf4zsPDw== X-Microsoft-Antispam-Message-Info: LPnuAyZOqmOH3r4QS7x+farH2OiJ2HjZvdnN4CBINwSNQZknf5eevQEtiyVW4NDNh1XQM/uS6qffkF0P26CFRr+8e3kLDjSrrnoLAVZ2AJhLdEH8L1vjisOCjhJ02lMkdcVexC+0yG+Epg0FggOwOdBoRDIHktmADBSyR/UOBN+lXew75J2qxU7Ye+P5q+9fSjknXFDF60uxfCwY7ZAi57dI933YlOTZytP/USKmYrlgj5CAgmfyh/VLYaXTPUrF1GRhYvK4QfCR2j3INHgtnavmosA3Cpaaym+5C4VXsY/ReH3EI1x9UJ/0JPuh9WBHWYg/I2eOBWxFy5bW+mSLQ1q4pGix/1jmOCeErguouts= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1650; 6:FEQO69Q8VYS3FLR9gOgeE0UIwbv0zoLKmZAqB+/IAwJzjUVnZ//N3XLFJ54C8vn8L2nKcqICSbLdjgyaLJFQKqptlsGix8o251YeEht0kRmBMlmcPNe+8RhDTr6iUmEGxs8SzXZ+e0ndCBl0uBoGXj/BifnVpf93O6F5NJq0GietMbFi7RedrngZ1zVM7Gx+CJIybnzODh8uOlZtsuBNXNJq9inmxvJhY38KKuWUf7KPRLvZEgkMkZwIlPP8oItgDwLQ2kIdSSGhWnTn7xnd2Zb6v3ss2684LOcIkpj9mSdg8D29rReqzbMhjDjqo31Ji4BHIoMnQWAigDiO+qBEZSFv6/xhzbfGDfLpCw5uE7nZN+FfLbtNrs7b8U//+M/xZrZOMbuvNNkJm3MmM6GoMDkxPz/JDDYHeIcwTqg7pFf8U+aZzbRg+tJ00LRPWm+dPi7v3QK8Z6dKkcfKmcJfpQ==; 5:c7rN99eccIfkWh/j7HUMFjmK2z8kD80UJ3rxhVIf0t1JDtuSEXhaiT1Id6b0PYN/EiM4z02MQCkzWNcs/tQj0CMDZQjTqzXa/hNL2UNcGYJbMpll7Z+HttDnVI9EtZn/7lA04Lem/cNPMe/ynUZRyhSsNtOIazxfss1HuVyLHN8=; 7:CTeM5w2sgkgclkXx18SS5Jej6jI1nkJy2T6dEr/844rFRHfJ4YH8Rfdrass/J+DyNX/1KZBDp3RjavGsD7ZhMCKU2WlR2yzrL5LnUGDYS5yDd4aIl3KzD/ZtsIiJ1/D5qsXck4ifPwlzh6bEvfm6JDZur2EPS1G+X7edD6nooSJHpJZ3yP1sNJxDGf7H/KaF55D1PdS6RBrKehUuYSmMxr8kaZsHyDoLAjgpCESW+RnKWKyxBxJ0rXvQBF1uEhPX SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Sep 2018 10:30:55.0607 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1f5d4b9e-6096-4f68-ea0a-08d625f6a3ca X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 83e2e134-991c-4ede-8ced-34d47e38e6b1 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1650 Subject: [dpdk-dev] [PATCH v3 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 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. 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 + 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 | 110 + 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 | 1335 ++++++++++++ drivers/net/atlantic/atl_types.h | 193 ++ 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 | 21 + 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, 11165 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