From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0044.outbound.protection.outlook.com [104.47.33.44]) by dpdk.org (Postfix) with ESMTP id D358C559C for ; Sun, 4 Dec 2016 13:43:43 +0100 (CET) Received: from BLUPR0301CA0009.namprd03.prod.outlook.com (10.162.113.147) by BY2PR0301MB0741.namprd03.prod.outlook.com (10.160.63.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.747.13; Sun, 4 Dec 2016 12:43:41 +0000 Received: from BY2FFO11OLC012.protection.gbl (2a01:111:f400:7c0c::162) by BLUPR0301CA0009.outlook.office365.com (2a01:111:e400:5259::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.761.9 via Frontend Transport; Sun, 4 Dec 2016 12:43:40 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com;nxp.com; dkim=none (message not signed) header.d=none; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BY2FFO11OLC012.mail.protection.outlook.com (10.1.15.23) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.734.4 via Frontend Transport; Sun, 4 Dec 2016 12:43:40 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:; UpperCasedChecksum:; SizeAsReceived:793; Count:13 Received: from bf-netperf1.idc ([10.232.134.28]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id uB4ChXb4032240; Sun, 4 Dec 2016 05:43:37 -0700 From: Hemant Agrawal To: CC: , , , Hemant Agrawal Date: Sun, 4 Dec 2016 23:46:56 +0530 Message-ID: <1480875447-23680-2-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1480875447-23680-1-git-send-email-hemant.agrawal@nxp.com> References: <1480875447-23680-1-git-send-email-hemant.agrawal@nxp.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-IncomingHeaderCount: 13 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131253290204786129; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(1110001)(1109001)(336004)(339900001)(199003)(189002)(104016004)(50226002)(39380400001)(81156014)(76176999)(39400400001)(189998001)(38730400001)(86362001)(36756003)(50986999)(39410400001)(47776003)(31430400001)(8936002)(8666005)(81166006)(8676002)(356003)(68736007)(2870700001)(110136003)(2351001)(305945005)(6916009)(33646002)(92566002)(2950100002)(6666003)(97736004)(7846002)(106466001)(105606002)(23676002)(5660300001)(50466002)(626004)(2906002)(77096006)(5820100001)(4326007)(85426001)(39450400002)(7059030); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR0301MB0741; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11OLC012; 1:G2apwEs4McBQna3Xfrbm6cqEfTUyWMdjgt+546QAbPVmfxDS7OukpvxOMKs1IjGhXwdkEBB86ZCwYEvPtNduAZ/egfir/Px3V263TEm07e6Pb9d/YuUAKAY/8mL9NlGU5j42GLq8mxXW8aWEf2eW8pbGfSsIbIZIAnEAqWuQPFUZsbYqGYoe+cGpe5ptSErvv61DdWFmBc5xjXdxTEU6Pftwf9nH/zxm/b6hwxWXquUono3gSeXmmQ1feFjYDOy21Bi54TqiZhc+Ze1jB/W0qFYUy75So2sv0vSnp/sI8G0AQ4LSLstVIyJ6TRvL2h4V+bsaIBCrunVpBkR2nYejkVKT/jaxMxv2xIOpBPKryQfeoGby83CsLnT/mr038k4SW8oTpyyxvm1FV2F/P/e+9qrH7Jc342KgG3I1npLXDfQyeWrQdZik35foFhxbO6LV4o2pPG6v2VIxiXL1LW5/HJJfqtyylcf5CO2xykEb4YlD4Ze8W4yhnuKP4UB4WVw5uWslzA07dSqV8+4W7M2WqTpPm8cfZTUAp2gDy41rO2SxbvHupVCsGVBLV/pe+jLXPVdGPTrLwAoV21OqkbE+ktBNdmjFvVmC1YI+HS+TH46eM3BveXBYd/MXAC98MF5h0jntqjmL2V5xYDVgAAV4AWSG4+vdnxNtE+EXANe1l0x9L/zbqunkgQ5ZFhfcJCr3b1/rfi7oRX1hl1trwHAGG1iONApDYrZ6iCERhyrvPMyYZFp3fW4Hv1nm2G92bYO2SW23nZeqcm7tDwlhRE8HVg== X-MS-Office365-Filtering-Correlation-Id: 70008614-fc28-4234-224b-08d41c432ca1 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BY2PR0301MB0741; X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0741; 3:M+Fa5YCl5agCRv1hFGYIMueijM0K4D8hqrmoPPfcWd4bbWLI+HO3Q1bXO7w1O7Q96yoh/N6sBIrhR6Myxk4+iciJ1ZYD9DbVeiMS9aky+9ebHUfjAz/+fKy5ikyMnLsuCgu1C2ejp0PrnIk9XIsFbkbGyQpznzx8qkRf40SlbpOYAX7kV5dvEPWVUADj2++gR7Ox8oGvSP36vparZZparvBfhdbFDMse+uF1LOtlrDq+ZuXWjgI3ly6rVWyVy0CNu2KNTRHbBysiILIcCZmKlNlSKs8hAmTQFAQg5Xz5FcKbdjPairIZ6K06ueNkYytGv1Apm6PlV81wi/HaZNgkTr7H94Eq2qTaC+Yy1Rf77TthgZ4DLs8KKyHUvCLUOyb1 X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0741; 25:mFJDat8lC9ySeDM0t7vzqDeIlEop2lMjEhwK4AP7z183UcjxGJWqwI4KZlCKKodMCP8PSPt/SrFLrRTop9HEvYR2jJng0CzKlJQeWBQHltQ9nxXkj/q0eX2878ME9cLazeszzZJ0cq5M3JCU+5a8zfHPnzppdw87hbhCE1Vx/WyojC/RLhSv1h6fBIMbNTDoZrx10DHNUzA7LMCKs8ibblLlChpUn933/Y9jqQube7h1e0sAHG0bIUm4V8vAODwvpbhhOtM0t9+KpZeeSIiCB71McwExFKDmmXgN6B9dABzTl3mmoeIOZPKybg5suTxEmit1WdQJVcj9SUQ4tdmbN0+n6x0juJWHMGS0XiDR+8Jg9uW+WULrelq2sOoHF6p5vL4Zb12KWUOrHmZS+9j2/8Te7l1I211xJQABlZpWs3hO2ZoJs07fWbihWzz+Ltgex34VCWWyBCSlwVRY+vY5mLCzv1NCY6orKBVNXZ9spr2zdKKmBn/Oh9o1HHS/p1w0ahgEe0xou0BMyHLeZJIYm17QkXrb3X/+D+boTshJLm6u5LBO5pEfnDBAwdmDVeoOap+Gg4yu9BAKj3RBY4qioweaHesCQPBtJfGS7uZV78m8eCzaO8oaQIbRybqxtKVN+pbi6FCYWdpUUGsl5tnmn82Wuq5pIiIq3IRicPNfUlcRwDLdissXsuMKxcEuTHex2ZVwX+LIkYL/kK9ZzPybriD/VKHf8B2w6P0rUQwIyOWctD7fYbxPIe4AZ7ytTMay1vw1qwjnYFTMZz6ms09l1hUfhvq5hN6KUCAUcj9e9pi327fOS87V+5oaZiChi3Ax2GsvhEUZGa0sgTwuodUz4nJu44sXtDuMGfupWmNBmDlv+mnzndkvHsL9MRWZPWVcgBmuWajyAgIjNdsRMtTjag== X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0741; 31:y13jcjVP3/Z7riybRwQpols/pm0oF0HU8srZ7p2sjhPDD0jSxDNMTdigxcBXzykreX+aBT1FkamiK0E0PuZu/j3Viq7wzBkGTcZ+SHy33hlJfRqmhLB+ckdgYemqn7w1cqPDpnB4S8ePcZ6n9YF0O5LomeGA7ecMRnw6NbDGvn2TAZNdXA6QnnTh6gJ6qrArQuNtqJbrjJqatVrf/bmyLGSmu0nlRMgqecohh4aEuliwaRsjc7gzC0sJzxRoAj3Cmo0aTSTzVZ+n26gBGQueDw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(166708455590820)(185117386973197)(227817650892897)(275809806118684)(21532816269658)(264314650089876); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095060)(601004)(2401047)(13017025)(13015025)(13023025)(13024025)(13018025)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6096035)(20161123561025)(20161123559025)(20161123556025)(20161123563025)(20161123565025); SRVR:BY2PR0301MB0741; BCL:0; PCL:0; RULEID:(400006); SRVR:BY2PR0301MB0741; X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0741; 4:wm8+MwoZTFqlycnc8evuHPnteQ8tAVpGI2oMZff5/BpEAOyJDz8zZasOf82pIkE41APz4vOM7ue7gJ/qY43mLfazUXd8v8ZrcBOqjyIcAgKyiBTcRsjW0+Ye+JUUzx41vN8/THwYAuB3TFPXepheszCmr/czDkXH6N/JJpHz9L3x6cfZ7lFzznpQj52w3+ij35xwD0/HHWDRadOr2b3a5Z0cd/omomFLjXRl1rJ43gRhWKZNHewl9W3WthNT2R8zf6ZG6KuOhz39cVaN7FjjbNkOc+yHD5JsZ6z26uX17tia2aEsZyrtQokqFp1UmfUnRFNNH9mrPg2ixwGVk1cGwdvnnk+Ge8Y5GpxoD6OyIWf2oJ4BFLYC0QzXHu86kuiVeSt2yC6ZrHBZTWxw/UfwRwLAa385VTN9iDQ31kVnnb4uEYgkqXLsk9OkZX1Cgdcpg0UUm4y0QjG3SPkn6yfr2EhxTIvnprF2B8WTA4dyebQlv3ZfjUFOAzPto5D9YJrg0mP4rNuvQ117TJol/7Rg0Fzxbe2fZ0+S57TA4AVRD2s8mJA2m7FVtZ4GvGKgDPFbkOOQNFh9MKzsG1GTV7xGWZDjXwdkixIMztkrlGELy6Dbk36udG7AKik8WyHiL5cUzHNvEBEf21RXGoBp6hNzJy3iDYq9KIzVDHhxVO8npq1+0CStkdQGWw7VUxDsDlVOJ8OzJMLuPXxfi6B9h8y14RaAjhMxOwTFK6FwTGmiMinUVj35YO5gDo6NiuqCW0OLXPjmI+8V8ke5snFpH0bQdr83/4h3t9bl+/KilUZL4g0eND70R6MCp21Q1IYZ3o5o71Hq5PADnNWE8FyDPuFj01AfqO2EjcwJS2fCslszDqowxybGG/7HFVioF+jc04/LC09LQHpKAWYwi4jXZw4aWbbbtFml5GPnEknf9H0btPw= X-Forefront-PRVS: 014617085B X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCWTJQUjAzMDFNQjA3NDE7MjM6dUNIOXMwNTdiSWw1ZDRiSEU2YVhHVHV6?= =?utf-8?B?cnkwd1d4ZTV4aGN0eS9neEg0eTIyYWNxQWlJam9QbGJSbFdmYU11L1IxWk9C?= =?utf-8?B?RjRxWi8zaVd0blBQWUw5bS9FbkxNdlZPS1NETFVpNGt0Q043NWs3OERDeVll?= =?utf-8?B?QmtjMmxDOCt5L1huN2dGZnczZEsrNEJERkxHd3FvUEdDUTEyZ0REaWFoNWFD?= =?utf-8?B?RUs2c1l1Qk11emt6dUZFMXl5c2VuSXZZV2Q0RnJOSWJqdW9GUSsvd3BYcyt1?= =?utf-8?B?WEV4N2hrbU9qOW9jNVF3eCt2OG5QN3pybkY5VS9LZ2dacnROdjFSTDh2YlVB?= =?utf-8?B?aDZ0a3FwOFFYZkhkb0FaM2h4TkJFYWwwQ2xBeFR1TjZ2eS9nQlhPNEpZSUZB?= =?utf-8?B?cERlUjFzLzZsZkhLdnZtQU9mWGNOUVp5dnFJOTgwUGp4TFB1Z2hJUXcvL0da?= =?utf-8?B?Q3duczkyQlZSdDFkVW1mRmJ3OXpoNjRad3RzTldRMlpOaHp6R2pJVmxTemhG?= =?utf-8?B?ZTI0d2VnRXJJK3J4c2R4R1g0SGpPTzJCMUlzZk81eURBMllyUXJYRnlxc1NZ?= =?utf-8?B?MElZbExLQitKNFRJVklpSTcrN25aTjJKMzJicFQ2cHZWeDVoZVFtc0M2c1U4?= =?utf-8?B?cE1WZkZUcnZ4VE01REptNXdsaWhGczRXR3p1NU9HRngvZU1XU0V1VVRlVklz?= =?utf-8?B?bjdGNjBGVFdhK2I5N1R6eGI3NHZRZFgyM2NRbDhFK1R3d1Qzam8rMFVIVlZs?= =?utf-8?B?Y3h3WkZxQ0IxclpKVmQ4WXpkRVJUVWpZU0kvNm42WXBIYW1lM2pldWpjM1Za?= =?utf-8?B?dWQ3UlJiYWhXeFcrejlSMFZPdkt2YTFXZTY2ZWVxajYwOU5KT092amF6NW9R?= =?utf-8?B?YnZlQVNZRFVUSWdBK2Zoak5yNmdFMExMc01KalZjdWpndkN0RHFLVC8wUGNL?= =?utf-8?B?QSs3RTN0VWU0dEg5S2hKWjZIQ2FLRnNsZnZLQnZMNEpaMDhyWWVTVlNSMDhD?= =?utf-8?B?a3dwYVFjRVlRQ0NTTWhvU1hTbUhBL2ZXVWlzaVhCOFZvRHk3S045NUl1Y20x?= =?utf-8?B?bFlxZkVjei9FSnBnYUxaT1dVMTBMc1JCUTB2MGZjSTFhRHVsRDdZaWlVdk9W?= =?utf-8?B?eDFoeEJLeEM3YlVtVld4Rjg0eUErTDZDVXAwam5yeElFOEI4eG1JbExzRDRF?= =?utf-8?B?bWZIY2VXa2R0SlhVdUJTd3lIUyt4dk82Umo4Q2VnRWNSaXZMWkRHTUIreFZt?= =?utf-8?B?bjM2aEx1STNZTTBBc2ZjeEdMd3lxQ1RwRk1qZjZkR1RubWpaRlROYWJaQXdJ?= =?utf-8?B?c2JpM1hTRm53QWRoV0xqUkJ1bzJjV1hYRWVxM1V0Y1RpUlkwcFVrTEdJMDN2?= =?utf-8?B?RlBiTDRpTWNZckppSUVNT2h0dW9iQlFxSWhsMkFaNFM3cnkyek1GUzFmQUQ0?= =?utf-8?B?N3ZKNVN5ZkRwemw5bEIraDJhMUtYSFZFMnM0TnIxT1NwSXdHbVk2eFZGUnJt?= =?utf-8?B?cUJxdDBkT1MrMVpYMGs3a2FlZVAvQXIvczU2VFFMcVY3a0x5ZjhBdTdCTzhh?= =?utf-8?B?dVk4OXdWQnkwTXIxV0tScHQwcFQweG5OM0xNOEJwQ29QTEJWMDRYVExJOXRm?= =?utf-8?B?alZqZjI4T3M4RVVNeHM1bXd0ZnlDMWlmbDZlemVGeUhHN3ZXT2ZqdGZlWnkx?= =?utf-8?Q?+hjNTSByW7mQYkny0HzWFkAucMo7fjTfhPrkmXp7U?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0741; 6:KNc36uwWGZJr5k4ByO3fFnEWOe3AC25aexoeNZpwRE7LILG5+IOlPpEDezUaboP+9p04wTKYJHhNhmbEvVtWokOAIFZmreG/7RdSYmb+eUBKIb5fpJ0yVpaKeJ6pknQZrFxl+4eN28qVaAq96EHN8YItLOlx9jmcTGkRxWWo15CZuPfedOfPtsFOfl3n2BYnwNqidpSIND9u29BKj7JsJmlBz1i2W8JUhOgisuH0GRl5oX8LN4V4+FpH6kbBpqvKUCw1KNo3wbJYeSNJVeLK4w4ffB5BmNerIh0tXzppeWrQhjOCd520pxum8j1d1JMBf9SrfhP+S63N4PGkMP/ueUDkgSijMLQiuw3hJy/Df9eJ8IIdURYyVubKoQq8XpwVNEEVe3lH4KgQLcSnFjzGuXEoYSwSfASmNTNydaUGbRmrsvng73v2VhoCVHGMWirn; 5:TimADggXnHU2UhPAxgPcUj3ZVNkltJfieJcJJ59Sw+2ZzGmkFVetL4I8f76epdBpw9Rxp6TODUiWlofBG9x4fjmkCC3X9WdmGVYjBnPBZIsCJ5kkcaK/eSE910YnTVpRxwrNAPCcZgeN5CrNRYEqzghuLGpyKGyRC/osXNOLCetXgKlGD7bSBgL7kFE/Al8U; 24:WreM3DTmqya26tGlgUc/gQpMhGVZvcyFITqOmqT2Tcc+3gucB2prmzyhUFjc0aewdpjQ3S4i8EhsG3INqjShO1hgRLa49lr5PGGEXopWY9w= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0741; 7:ixIRhLFLUZZXKIzbvUo/TYTXqax9otJ2MUwvxA4e1Ynjgwn5TyU5CCFCxTSbAb4DQ352MB6Bg8qWolyDalRWxT6vZ9WbLGlxxsKkI9An9IM4E1zYBvX6wQn+c+3cfA4rBZ0Z6rtnR+YCwkJxrD/jOQKvw8dt2cOmWLyJOWJDmK8qCW8uF/zIEAm0Az3NwxLiLCjNF5RLOcGlmmYjw3pe11UkJYZs5vtXi318FhiPXkhNsSExz3NcxGyp3mv+hXWli5CL20OOyD8MixImVNe4e4EyFCzy/CAIfbGG5P3M/Jl/LKe+Bq6xQD8nM5CKQB2IJ4w6ibPncJALGo4CRepswJktLdhBv2j0EDf+hWhu3g6nG8N+btmbuyBO8d7IZInqKwajwfn4+LsNwXzYIZDXHJVj2WEsHiea97KN+6FQcpD6EhW7hQugIf1xYE3GEY+uUDC/ytiiTI2h0v9oGccOPg== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2016 12:43:40.1355 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0301MB0741 Subject: [dpdk-dev] [PATCH 01/32] doc: add dpaa2 nic details 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: , X-List-Received-Date: Sun, 04 Dec 2016 12:43:44 -0000 Add the dpaa2 architecture and pmd details Signed-off-by: Hemant Agrawal --- doc/guides/nics/dpaa2.rst | 537 +++++++++++++++++++++++++++++++++++++ doc/guides/nics/features/dpaa2.ini | 9 + doc/guides/nics/index.rst | 1 + 3 files changed, 547 insertions(+) create mode 100644 doc/guides/nics/dpaa2.rst create mode 100644 doc/guides/nics/features/dpaa2.ini diff --git a/doc/guides/nics/dpaa2.rst b/doc/guides/nics/dpaa2.rst new file mode 100644 index 0000000..95372ee --- /dev/null +++ b/doc/guides/nics/dpaa2.rst @@ -0,0 +1,537 @@ +.. BSD LICENSE + Copyright (C) NXP. 2016. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + * Neither the name of NXP nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +DPAA2 Poll Mode Driver +=============================== + +The DPAA2 NIC PMD (**librte_pmd_dpaa2**) provides poll mode driver +support for the inbuilt NIC found in the **NXP DPAA2** SoC family. + +More information can be found at `NXP Official Website +`_. + +NXP DPAA2 (Data Path Acceleration Architecture Gen2) +---------------------------------------------------- + +This section provides an overview of the NXP DPAA2 architecture +and how it is integrated into the DPDK. + +Contents summary +- DPAA2 overview +- Overview of DPAA2 objects +- DPAA2 driver architecture overview + +DPAA2 Overview +-------------- +Refer: `FSL MC BUS in Linux Kernel `_. + +DPAA2 is a hardware architecture designed for high-speeed network +packet processing. DPAA2 consists of sophisticated mechanisms for +processing Ethernet packets, queue management, buffer management, +autonomous L2 switching, virtual Ethernet bridging, and accelerator +(e.g. crypto) sharing. + +A DPAA2 hardware component called the Management Complex (or MC) manages the +DPAA2 hardware resources. The MC provides an object-based abstraction for +software drivers to use the DPAA2 hardware. + +The MC uses DPAA2 hardware resources such as queues, buffer pools, and +network ports to create functional objects/devices such as network +interfaces, an L2 switch, or accelerator instances. + +The MC provides memory-mapped I/O command interfaces (MC portals) +which DPAA2 software drivers use to operate on DPAA2 objects: + +The diagram below shows an overview of the DPAA2 resource management +architecture: + +.. code-block:: console + + +--------------------------------------+ + | OS | + | DPAA2 drivers | + | | | + +-----------------------------|--------+ + | + | (create,discover,connect + | config,use,destroy) + | + DPAA2 | + +------------------------| mc portal |-+ + | | | + | +- - - - - - - - - - - - -V- - -+ | + | | | | + | | Management Complex (MC) | | + | | | | + | +- - - - - - - - - - - - - - - -+ | + | | + | Hardware Hardware | + | Resources Objects | + | --------- ------- | + | -queues -DPRC | + | -buffer pools -DPMCP | + | -Eth MACs/ports -DPIO | + | -network interface -DPNI | + | profiles -DPMAC | + | -queue portals -DPBP | + | -MC portals ... | + | ... | + | | + +--------------------------------------+ + +The MC mediates operations such as create, discover, +connect, configuration, and destroy. Fast-path operations +on data, such as packet transmit/receive, are not mediated by +the MC and are done directly using memory mapped regions in +DPIO objects. + +Overview of DPAA2 Objects +------------------------- + +The section provides a brief overview of some key DPAA2 objects. +A simple scenario is described illustrating the objects involved +in creating a network interfaces. + +DPRC (Datapath Resource Container) + + A DPRC is a container object that holds all the other + types of DPAA2 objects. In the example diagram below there + are 8 objects of 5 types (DPMCP, DPIO, DPBP, DPNI, and DPMAC) + in the container. + +.. code-block:: console + + +---------------------------------------------------------+ + | DPRC | + | | + | +-------+ +-------+ +-------+ +-------+ +-------+ | + | | DPMCP | | DPIO | | DPBP | | DPNI | | DPMAC | | + | +-------+ +-------+ +-------+ +---+---+ +---+---+ | + | | DPMCP | | DPIO | | + | +-------+ +-------+ | + | | DPMCP | | + | +-------+ | + | | + +---------------------------------------------------------+ + +From the point of view of an OS, a DPRC behaves similar to a plug and +play bus, like PCI. DPRC commands can be used to enumerate the contents +of the DPRC, discover the hardware objects present (including mappable +regions and interrupts). + +.. code-block:: console + + DPRC.1 (bus) + | + +--+--------+-------+-------+-------+ + | | | | | + DPMCP.1 DPIO.1 DPBP.1 DPNI.1 DPMAC.1 + DPMCP.2 DPIO.2 + DPMCP.3 + +Hardware objects can be created and destroyed dynamically, providing +the ability to hot plug/unplug objects in and out of the DPRC. + +A DPRC has a mappable MMIO region (an MC portal) that can be used +to send MC commands. It has an interrupt for status events (like +hotplug). + +All objects in a container share the same hardware "isolation context". +This means that with respect to an IOMMU the isolation granularity +is at the DPRC (container) level, not at the individual object +level. + +DPRCs can be defined statically and populated with objects +via a config file passed to the MC when firmware starts +it. There is also a Linux user space tool called "restool" +that can be used to create/destroy containers and objects +dynamically. + +DPAA2 Objects for an Ethernet Network Interface +----------------------------------------------- + +A typical Ethernet NIC is monolithic-- the NIC device contains TX/RX +queuing mechanisms, configuration mechanisms, buffer management, +physical ports, and interrupts. DPAA2 uses a more granular approach +utilizing multiple hardware objects. Each object provides specialized +functions. Groups of these objects are used by software to provide +Ethernet network interface functionality. This approach provides +efficient use of finite hardware resources, flexibility, and +performance advantages. + +The diagram below shows the objects needed for a simple +network interface configuration on a system with 2 CPUs. + +.. code-block:: console + + +---+---+ +---+---+ + CPU0 CPU1 + +---+---+ +---+---+ + | | + +---+---+ +---+---+ + DPIO DPIO + +---+---+ +---+---+ + \ / + \ / + \ / + +---+---+ + DPNI --- DPBP,DPMCP + +---+---+ + | + | + +---+---+ + DPMAC + +---+---+ + | + port/PHY + +Below the objects are described. For each object a brief description +is provided along with a summary of the kinds of operations the object +supports and a summary of key resources of the object (MMIO regions +and IRQs). + +DPMAC (Datapath Ethernet MAC): represents an Ethernet MAC, a +hardware device that connects to an Ethernet PHY and allows +physical transmission and reception of Ethernet frames. + +- MMIO regions: none +- IRQs: DPNI link change +- commands: set link up/down, link config, get stats, IRQ config, enable, reset + +DPNI (Datapath Network Interface): contains TX/RX queues, +network interface configuration, and RX buffer pool configuration +mechanisms. The TX/RX queues are in memory and are identified by +queue number. + +- MMIO regions: none +- IRQs: link state +- commands: port config, offload config, queue config, parse/classify config, IRQ config, enable, reset + +DPIO (Datapath I/O): provides interfaces to enqueue and dequeue +packets and do hardware buffer pool management operations. The DPAA2 +architecture separates the mechanism to access queues (the DPIO object) +from the queues themselves. The DPIO provides an MMIO interface to +enqueue/dequeue packets. To enqueue something a descriptor is written +to the DPIO MMIO region, which includes the target queue number. +There will typically be one DPIO assigned to each CPU. This allows all +CPUs to simultaneously perform enqueue/dequeued operations. DPIOs are +expected to be shared by different DPAA2 drivers. + +- MMIO regions: queue operations, buffer management +- IRQs: data availability, congestion notification, buffer pool depletion +- commands: IRQ config, enable, reset + +DPBP (Datapath Buffer Pool): represents a hardware buffer +pool. + +- MMIO regions: none +- IRQs: none +- commands: enable, reset + +DPMCP (Datapath MC Portal): provides an MC command portal. +Used by drivers to send commands to the MC to manage +objects. + +- MMIO regions: MC command portal +- IRQs: command completion +- commands: IRQ config, enable, reset + +Object Connections +------------------ + +Some objects have explicit relationships that must +be configured: + +- DPNI <--> DPMAC +- DPNI <--> DPNI +- DPNI <--> L2-switch-port + +A DPNI must be connected to something such as a DPMAC, +another DPNI, or L2 switch port. The DPNI connection +is made via a DPRC command. + +.. code-block:: console + + +-------+ +-------+ + | DPNI | | DPMAC | + +---+---+ +---+---+ + | | + +==========+ + +- DPNI <--> DPBP + +A network interface requires a 'buffer pool' (DPBP object) which provides +a list of pointers to memory where received Ethernet data is to be copied. +The Ethernet driver configures the DPBPs associated with the network +interface. + +Interrupts +---------- +All interrupts generated by DPAA2 objects are message +interrupts. At the hardware level message interrupts +generated by devices will normally have 3 components-- +1) a non-spoofable 'device-id' expressed on the hardware +bus, 2) an address, 3) a data value. + +In the case of DPAA2 devices/objects, all objects in the +same container/DPRC share the same 'device-id'. +For ARM-based SoC this is the same as the stream ID. + + +DPAA2 DPDK - Poll Mode Driver Overview +-------------------------------------- + +This section provides an overview of the drivers for +DPAA2-- 1) the bus driver and associated "DPAA2 infrastructure" +drivers and 2) functional object drivers (such as Ethernet). + +As described previously, a DPRC is a container that holds the other +types of DPAA2 objects. It is functionally similar to a plug-and-play +bus controller. + +Each object in the DPRC is a Linux "device" and is bound to a driver. +The diagram below shows the dpaa2 drivers involved in a networking +scenario and the objects bound to each driver. A brief description +of each driver follows. + +.. code-block: console + + + +------------+ + | DPDK DPAA2 | + | PMD | + +------------+ +------------+ + | Ethernet |.......| Mempool | + . . . . . . . . . | (DPNI) | | (DPBP) | + . +---+---+----+ +-----+------+ + . ^ | . + . | | . + . | | . + . +---+---V----+ . + . . . . . . . . . . .| DPIO driver| . + . . | (DPIO) | . + . . +-----+------+ . + . . | . + . . | . + +----+------+-------+ | . + | dpaa2 bus | | . + | VFIO fsl-mc-bus |....................|..................... + | | | + | /soc/fsl-mc | | + +-------------------+ | + | + ========================== HARDWARE =====|======================= + DPIO + | + DPNI---DPBP + | + DPMAC + | + PHY + =========================================|======================== + + +A brief description of each driver is provided below. + +DPAA2 bus driver +---------------- +The DPAA2 bus driver is a rte_bus driver which scans the fsl-mc bus. +Key functions include: + +- Reading the container and setting up vfio group +- Scanning and parsing the various MC objects and adding them to + their respective device list. + + +DPIO driver +----------- +The DPIO driver is bound to DPIO objects and provides services that allow +other drivers such as the Ethernet driver to enqueue and dequeue data for +their respective objects. +Key services include: + +- Data availability notifications +- Hardware queuing operations (enqueue and dequeue of data) +- Hardware buffer pool management + +To transmit a packet the Ethernet driver puts data on a queue and +invokes a DPIO API. For receive, the Ethernet driver registers +a data availability notification callback. To dequeue a packet +a DPIO API is used. + +There is typically one DPIO object per physical CPU for optimum +performance, allowing different CPUs to simultaneously enqueue +and dequeue data. + +The DPIO driver operates on behalf of all DPAA2 drivers +active -- Ethernet, crypto, compression, etc. + +Ethernet +-------- +The Ethernet driver is bound to a DPNI and implements the kernel +interfaces needed to connect the DPAA2 network interface to +the network stack. + +Each DPNI corresponds to a DPDK network interface. + +Features +-------- + +Features of the DPAA2 PMD are: + +- Multiple queues for TX and RX +- Receive Side Scaling (RSS) +- Packet type information +- Checksum offload +- Promiscuous mode + +Supported DPAA2 SoCs +-------------------- +- LS2080A/LS2040A +- LS2084A/LS2044A +- LS2088A/LS2048A +- LS1088A/LS1048A + +Prerequisites +------------- +This driver relies on external libraries and kernel drivers for resources +allocations and initialization. The following dependencies are not part of +DPDK and must be installed separately: + +- **NXP Linux SDK** + + NXP Linux software development kit (SDK) includes support for family + of QorIQ® ARM-Architecture-based system on chip (SoC) processors + and corresponding boards. + + It includes the Linux board support packages (BSPs) for NXP SoCs, + a fully operational tool chain, kernel and board specific modules. + + SDK and related information can be obtained from: `NXP QorIQ SDK `_. + +- **DPDK Helper Scripts** + + DPAA2 based resources can be configured easily with the help of ready scripts + as provided in the DPDK helper repository. + + `DPDK Helper Scripts `_. + +Currently supported by DPDK: + +- NXP SDK **2.0+**. +- MC Firmware version **10.0.0** and higher. +- Supported architectures: **arm64 LE**. + +- Follow the DPDK :ref:`Getting Started Guide for Linux ` to setup the basic DPDK environment. + +Pre-Installation Configuration +------------------------------ + +Config File Options +~~~~~~~~~~~~~~~~~~~ + +The following options can be modified in the ``config`` file. +Please note that enabling debugging options may affect system performance. + +- ``CONFIG_RTE_LIBRTE_DPAA2_PMD`` (default ``n``) + + By default it is enabled only for defconfig_arm64-dpaa2-* config. + Toggle compilation of the ``librte_pmd_dpaa2`` driver. + +- ``CONFIG_RTE_LIBRTE_DPAA2_DEBUG_INIT`` (default ``n``) + + Toggle display of initialization related messages. + +- ``CONFIG_RTE_LIBRTE_DPAA2_DEBUG_RX`` (default ``n``) + + Toggle display of receive fast path run-time message + +- ``CONFIG_RTE_LIBRTE_DPAA2_DEBUG_TX`` (default ``n``) + + Toggle display of transmit fast path run-time message + +- ``CONFIG_RTE_LIBRTE_DPAA2_DEBUG_DRIVER`` (default ``n``) + + Toggle display of generic debugging messages + +- ``CONFIG_RTE_LIBRTE_DPAA2_USE_PHYS_IOVA`` (default ``y``) + + Toggle to use physical address vs virtual address for hardware acceleraters. + +Driver Compilation +~~~~~~~~~~~~~~~~~~ + +To compile the DPAA2 PMD for Linux arm64 gcc target, run the +following “make” command: + +.. code-block:: console + + cd + make config T=arm64-dpaa2-linuxapp-gcc install + +.. _dpaa2_testpmd_example: + +Running testpmd +~~~~~~~~~~~~~~~ + +This section demonstrates how to launch ``testpmd`` with DPAA2 device +managed by ``librte_pmd_dpaa2`` in the Linux operating system. + +# configure the resource container + + configure resources in MC and create the DPRC container + export the DPRC container + e.g. export DPRCT=dprc.2 + +#. Start ``testpmd`` with basic parameters: + + .. code-block:: console + + ./arm64-dpaa2-linuxapp-gcc/testpmd -c 0xff -n 1 \ + -- -i --portmask=0x1 --nb-cores=1 --no-flush-rx + + +Limitations +----------- + +Platform Requirement +~~~~~~~~~~~~~~~~~~~~~ +DPAA2 drivers for DPDK can only work on NXP SoCs as listed in the +``Supported DPAA2 SoCs``. + +Maximum packet length +~~~~~~~~~~~~~~~~~~~~~ + +The DPAA2 SoC family support a maximum of a 10240 jumbo frame. The value +is fixed and cannot be changed. So, even when the ``rxmode.max_rx_pkt_len`` +member of ``struct rte_eth_conf`` is set to a value lower than 10240, frames +up to 10240 bytes can still reach the host interface. + diff --git a/doc/guides/nics/features/dpaa2.ini b/doc/guides/nics/features/dpaa2.ini new file mode 100644 index 0000000..b176208 --- /dev/null +++ b/doc/guides/nics/features/dpaa2.ini @@ -0,0 +1,9 @@ +; +; Supported features of the 'dpaa2' network poll mode driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] +Linux VFIO = Y +ARMv8 = Y +Usage doc = Y diff --git a/doc/guides/nics/index.rst b/doc/guides/nics/index.rst index 92d56a5..fa01662 100644 --- a/doc/guides/nics/index.rst +++ b/doc/guides/nics/index.rst @@ -39,6 +39,7 @@ Network Interface Controller Drivers bnx2x bnxt cxgbe + dpaa2 e1000em ena enic -- 1.9.1