From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0086.outbound.protection.outlook.com [104.47.42.86]) by dpdk.org (Postfix) with ESMTP id 369FC532E for ; Sun, 9 Apr 2017 10:09:24 +0200 (CEST) Received: from BN3PR0301CA0033.namprd03.prod.outlook.com (10.160.180.171) by BL2PR03MB386.namprd03.prod.outlook.com (10.141.91.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1019.17; Sun, 9 Apr 2017 08:09:22 +0000 Received: from BN1BFFO11FD029.protection.gbl (2a01:111:f400:7c10::1:137) by BN3PR0301CA0033.outlook.office365.com (2a01:111:e400:4000::43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1019.17 via Frontend Transport; Sun, 9 Apr 2017 08:09:22 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; caviumnetworks.com; dkim=none (message not signed) header.d=none; caviumnetworks.com; dmarc=fail action=none header.from=nxp.com; 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 BN1BFFO11FD029.mail.protection.outlook.com (10.58.144.92) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1019.14 via Frontend Transport; Sun, 9 Apr 2017 08:09:21 +0000 Received: from DTS-02.ap.freescale.net (DTS-02.ap.freescale.net [10.232.132.223]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v3989Aof015502; Sun, 9 Apr 2017 01:09:18 -0700 From: Hemant Agrawal To: CC: , , , , , Date: Sun, 9 Apr 2017 13:41:03 +0530 Message-ID: <1491725483-6619-3-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1491725483-6619-1-git-send-email-hemant.agrawal@nxp.com> References: <1490362538-20854-1-git-send-email-hemant.agrawal@nxp.com> <1491725483-6619-1-git-send-email-hemant.agrawal@nxp.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-EOPAttributedMessage: 0 X-Matching-Connectors: 131361989620311332; (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)(336005)(39380400002)(39850400002)(39400400002)(39410400002)(39860400002)(39840400002)(39450400003)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(9170700003)(8936002)(305945005)(86362001)(50226002)(53936002)(356003)(2351001)(8656002)(76176999)(8676002)(5820100001)(77096006)(50986999)(36756003)(81166006)(6306002)(54906002)(104016004)(50466002)(189998001)(23676002)(33646002)(106466001)(2950100002)(5660300001)(47776003)(105606002)(6666003)(6916009)(38730400002)(2906002)(110136004)(85426001)(4326008)(2870700001); DIR:OUT; SFP:1101; SCL:1; SRVR:BL2PR03MB386; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; MX:1; A:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD029; 1:ZGlgsLZg4u96+OqCLeB8tLulE7uHjoskOAgVWXMj5eFTKihsZo9TlDt0KsXFkoseCntC51xuC+y+LgaXfcMO9aJmhr6+nLtGfRhWrk15vIvVTx1MKQvp0Qe7/xBrssNnGFnjM0K34m+9ftCvcIMNwFEYCXnEMIfqHc1ZEjI7etEQ/5Ce9TWS79HFFWq72ucynYTQUOoMcB2lpmhgxJTaQJThzhVtWZS7sdh3l1UPyVwUDpnTaRnSDfMPu0upN1uFAuvQFWcQP6iNLRYGkczUIGYLGHWlqQcGjnGUnR6ma6e1upPh7V2ZnxgmQFNJQaDle5MnQ2mN2uAz6y+x4HAhtwdvNFB1FqNsbD2qpLCmkprabxS7TRupywhfOKGmBxD4LL3LP/SNS2tnNWrGGHTauOJDcAv0NKIW9JrNwBlU7sU+b2+gzraDeC1lc5GtSLOI1y/SUWwcIgyxIEUaSEJuG2jSzwgg1G3AuKb4MQ+7gFIC/17tsTaBYiIZkg4OsuXd8zxgmrUK4m7RIlYlgWEObkiMsAA4M6BHEKLVp5GFi0lKX/7c8qFeOZYBif4AG8rphClGleANCxFGqIy5vdHtMC4DsMy99goyWB7nIYVZ65rbUiMl4vVjfoQ1SxW3PvE6hDgFX2lInRkOTl1YgpwpPYe+qktR/jiqLCRzu4lQw5Q= X-MS-Office365-Filtering-Correlation-Id: c918e2e8-524a-4cef-43c5-08d47f1fbac3 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131430075)(201703131517081); SRVR:BL2PR03MB386; X-Microsoft-Exchange-Diagnostics: 1; BL2PR03MB386; 3:6QlQWBOI7ajz83Kz++1rFkHpfUknbH6xw5oRDuUXV4D6sLK/nTjboGkOcMz82wkVgK2z52stxWe5ebYkuFcpbuu8aexEqRRLbSs5/STIL4SN1KZB5t/LS4/CSy/dznDw/I6o53pKdJgSI66zkXeHCwOGUtuiMOz4qJl2Lq5Xbo4MRavvVikXOmqmKbLCNFRiM/tjIqGob/2BlW/QVPTX9QFhGXSn/ILBt2riPAHuzKwVXWRIz2Duh9gnS+2XLB47c2vEAfl6ssrujOyNNFnomgzh3AEFcQSVgBpgkuo65HG7In7MWEWDqU6e1XXi5CsCRgnh8WW/DFugDI4E397ndQzbzFKjJ1F2JlW+H8Q53FDePi492ThmQ3JOhJ2AzN41y7umKgBx7BA54Tl3BpsMVbmPqua4pHmW25m7MjNWCcd79npZR4OkgLcVsXmF188R; 25:DDpB/wXnMuDvNYoiZTR+wGScHCbjNVjMXeDjQKjWTUhvCrKl1GcJmfXUgUatdBFrLQqZ7ncUpmi1B+dXC1Rx7GzjvE1s2i6dKGwfO8lBmRB1J9CmyEEVGRPD+XLHMj/EtTA0vn96SkMkmTZsF5QXxHAhB4/C7axUo0vMWYqJf5pWtHb/56rwgpKplztQ4xJyeHP9Fju+dhV/lvMnv3JdC7pnG1UzU/vsGNChzmiwkOyHZPPKmoci3+gJUvNtCYTcTw6mtqqq2GxpKJjH/0LGkzeJON8ajlEDMSI5QxrjXbsY7jqXzkWbLx9l64HotfebHNSzQSXyN9NSAR06YTvsA8ZVRUYBnz70qxXChHv95c88K11u1dqwSdboGCTmyrAjcLf+HnOjzmdgvCmEnwYcV5xFOJuFoJh1wTSXAapEAhJtlyt5h2/CLeX57j3uvyhiYAlznHr5gCQbHSBX412gdw== X-Microsoft-Exchange-Diagnostics: 1; BL2PR03MB386; 31:sYtbdnj8EA1J8lV5oYfBDgL3rixSbWK9rg+WUH8N9g3/VjCj2Ii2jOvaNtOn00fn7GwF4DnUqo95lxEjyg1RwH0ov+4iiAeLS/Ga+b28DpIvHk4eTAiSJeTLuU+Jnx+1fG/DzzqKgwm1k/YQRJ8p5MkDvv13MjavIbYraoJmACAqo8eK1/j/N+SS1o6wGdxTvhA1MQT7nrwgLQ8hqieA+TDClC53mok4zpOW5nfa1ZzgxtehDsd3eU+ZmPcIGHTz9FzB1pe9RQSJvQfXnJapSw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(166708455590820)(185117386973197)(227817650892897)(275809806118684)(21532816269658)(264314650089876)(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095135)(601004)(2401047)(13017025)(13018025)(13024025)(13023025)(8121501046)(13015025)(5005006)(3002001)(10201501046)(93006095)(93001095)(6055026)(6096035)(20161123563025)(201703131430075)(201703131448075)(201703131433075)(201703161259075)(20161123556025)(20161123565025)(20161123561025); SRVR:BL2PR03MB386; BCL:0; PCL:0; RULEID:(400006); SRVR:BL2PR03MB386; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTDJQUjAzTUIzODY7NDo1WFBuYTRTZ0lYa0lSN0ViS010eEpUajRrZ1o4?= =?utf-8?B?YThGNkVJVyttaGtNTk9ubkphbWpIMnVud3ZaaWJvdjZjRS9lR3d2S2dIb3Zx?= =?utf-8?B?Q0pOK2h2RFlta1hja0J6aEV6Qmg3ZjNNTGpPK3Q5bXpwR3ZYTnZsQk1VcUI4?= =?utf-8?B?VW1ld1dMR3BWeG5kTHhoNmpPekpqWk91MWM4L0R1Z2dpOUFaNGxuWDhsWlpY?= =?utf-8?B?ZDk4TTdBZXk2NVdUUWphdjFycUxCNWVEMUpJSS85WVkyQTUrVmNvemtkdkJj?= =?utf-8?B?Q3p3T3ZhSFBiV05iU2piY1Z3M3VLcmF1TTRpbncrZFJzNTRxM2dHTVppL2xP?= =?utf-8?B?ZmZwSEdlSmdKZFZNZzBNL3JrNTNmdm5uUEphZmpkejZneWxVV1kyL0NWbk5q?= =?utf-8?B?UTRvaWZma041a0lLTDIyMFpOUjlCYlFoN2diQWovb0NZNzNEWUxsY25Qb0Vr?= =?utf-8?B?aTRzaktETXNVV05BVVpZdkdqeHR2SUxYb1NTTEJvNkdXZTBOY0FtMTRmU0Fw?= =?utf-8?B?eFBJVEtWY0xMRXJ3MzhBMEh0d3RFWnE0VWFoMldkK3FOQUpQQmpDWmp3MjlK?= =?utf-8?B?ZnVxSTVUa0lLNGsrbk5wR1NKcHIwUkdjSGRyMk9HZ0VGOHFldFZlU1lnME13?= =?utf-8?B?cDJYT3ptSERjaWlpVG96d05iVlpVOGkwRW5FL1pwMi9La2dSTGNqTFRBWTJY?= =?utf-8?B?OUxTUWQ1ZXo2elZzdUcwOHBSMmNaY2JnNmpOMjFZcGFDc2drOUVqUVh4RjFr?= =?utf-8?B?OUw3QU9DblFPelJ4TklIcWMzZkp2TnJyczdPanVHVFVQNUFJaU5Lald5bjRs?= =?utf-8?B?ZE9DT2xkZHgzdDFqTHNLSmpTTnhRTzdVbGdXdHFDTmtDM2hOM3JiZjBvQ0FE?= =?utf-8?B?TVg5MUN4Nk5xT0RseVJsRHB6dTI1SUdlaVY4L1VJb0JCbFdLRlpnMnJkbEYz?= =?utf-8?B?YnhKcVgrZ3hITzZROWhjeW8zcnUyc3kxMjlldnorem5IZGRtRjl4RkN1WHZx?= =?utf-8?B?NmpsVHBXRzNaTEFoR21WcGlNU2syTHRGQXo3TFBtVU03aWhKNnA3Rm05T0VM?= =?utf-8?B?SFBjVDNFR0ptWmZqWkloUDNvWXF5WW5WbUtMdXFQdEs2eG9ad1Y5SlVacSsr?= =?utf-8?B?QlRkL0dmb0ovRklldDAvTElEcVBhQ1l3aFRYYnNmdFljSmE0YTF0dG1LM3Fn?= =?utf-8?B?dUx1a1I1VkIzdDErY1diRDRlOTltQXFlZHIwUFpvRHFhTlBPWjJHc05KWmNj?= =?utf-8?B?NFF3VVozSEhjTnh5MTVvZlk4bjBCbXcwOWZTNVNtWTl5bnFCT29JM21ZTXZI?= =?utf-8?B?dzVQWFI5YVRyOXh3ekFxSmtwUUd0SXROcjN5Q3BMTEhNZW9GeUxvS1Q5dHRO?= =?utf-8?B?ZUwvQXhYVFhkdkVPS1VZY2tPRktzSGtaeUYrbDhlaTdPK0IzYVhTNVRVQ0Jy?= =?utf-8?B?d2VuWFhTZ2xkZHpHVnhUS0dPNlhFQS9EU2Z3dVJ5bHFIbDByT3I2Uk8yejBy?= =?utf-8?B?b0E9PQ==?= X-Forefront-PRVS: 02723F29C4 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTDJQUjAzTUIzODY7MjM6azRqRWhTMGl2QmhKa1pjdE1iTVZjRHpGejZE?= =?utf-8?B?Y2VMcUlaTUkrTEVoaC9CcVBlNXVwdXI4djhYUzl3d1hlUElDV2V0ZkNIb1ZK?= =?utf-8?B?dlR5czBObmdRSStQZCtWbnQrTEtONmRFRk1JcVhlSDdTS0JDZWl1SUFMV2Zo?= =?utf-8?B?ZGdyM0E5RHd3VWt4cDNMRndYU2orbTI5SkZjWEVIeWFSOTRVNS9mUXVTd2x0?= =?utf-8?B?bG4wNHgyS25samFON3ZUbWhLY1oxRHp1Z1M4OWM0cGxYaEJnS0MyTGgyTTFL?= =?utf-8?B?eGNGYjUySSt0b1JvVTNjclhOS29NTHh0QXo0dlJpRUg3YitYNDF3bHJPcWl4?= =?utf-8?B?UUlmRGZPYVp6ZjJuUFkvUTFMaHkyZWhmc0EyOElFTHRpTmxDY3N6UkFSdUFx?= =?utf-8?B?SG8xR1pCYU1UNXBZVTNXcnJGcWg3MmcxanVpNU5mdGMrY0xRNGhQejRWM2VG?= =?utf-8?B?UWVsUlppWEpvM3pQVGMxY2U2RjR6RzUvK1NIN2pJL2pNMkVTZnFEMjZuMnBp?= =?utf-8?B?Y0paUzh1dUM4M0szbHI2NGgyYTNZVDhSQ3g2Mzg3c1lpdHo3b2JkQTkxVW1L?= =?utf-8?B?Z3lQNytjSGs2bEdZc2ZndEgzaUZPUjFWdk9zQTNCdCtORlpUK1VYRzFTZXFm?= =?utf-8?B?UmwzSTI1OW1qRzRGNFl6c0dzbEowSEtkKzVpZ0t5NmQ5NHc5M1FmcExKNGk3?= =?utf-8?B?cXN0REVjRTB2dFFuMVdkOGNNelZSRHlqN1BkZ2k3SnhFcEgvUU1keG5UaElX?= =?utf-8?B?MDc3OUEwS1BqUVZSTnB1VHd5R0YySytMSHV6elFmaVlvNmRJVC9ZcS92WS90?= =?utf-8?B?VEEzNC9SVlRnQzZHb2hpWEdIb1FBMW1yNG1Ib05yT2h6aTl5TVkyM3h6aU5M?= =?utf-8?B?enY4QjcrS0RSRDlrK1BhbHpISzhsL0ZJK1V0OURIN1pjMVpOdWprWjhTUW5h?= =?utf-8?B?WGJZallNcTdiMmU0eW8vZWR0N3VRNEttMUYvVlliSnBWZ29RZ0NPYUZUY1ZB?= =?utf-8?B?aHZYVEZKdW96TktnbXcvWVdQbVJRRWQvenRjYnFENC84MytHeW1vQUJpU0ZK?= =?utf-8?B?Y1h5dVFHRFQ3U3Npc3oxVzFhQmhkTU9tS2YrdTNSZDlwTmVhRDJlSTVWcUx5?= =?utf-8?B?N3hHbVlpRXBFZ3BkK0ZyeFVteW9ZUHo3dU80QnhPNXordUtNWnEyK3N5SU42?= =?utf-8?B?OGVoRURMSHJ6anZ6WFNkOVUzWmU4cXhHS0dIZzcrdW1nVkxvWjYwbjZqd25W?= =?utf-8?B?RE11ajhSMDU5ZVhpVGVsT2luOFhRVFVOa21hcStqa3R5Um9CcHpjWWJBK1Nk?= =?utf-8?B?RUhPMDlvRXd2b2tyMy9pb2FoVjRNT3hqR0I3NnM4dlJab0ZEL3BvZGIzMnRS?= =?utf-8?B?b2Jka2REazdxMXJWdFJIY1J0ZFJBV2h5aWQ5Ym9pTmp0aHl4S0djeWlmV3ps?= =?utf-8?B?RGswUUdNejk4ZHZGZFRyMCt1WUtTbzRDVWVvQWdUT0xtd1hPeDdoZHZ4bTls?= =?utf-8?B?WkxScXp1a21zZW12aWtBcjh3RzM3bkdNT2o0TXMxR0RNbHFXbGI5MmZqMHVI?= =?utf-8?B?SW9XV1YzanNUWlJoVU9MRlpLemJiNUFTeW95bzhFcGVGNHMwR3JJTmVMQUV0?= =?utf-8?B?eENBZGM4SEY0UkhxRW5UYnpENnFVaEg5NzV0YnJxSHpXU2g0MmxhRi9RR0k3?= =?utf-8?Q?ftLr3cNOw25kdzzAk=3D?= X-Microsoft-Exchange-Diagnostics: 1; BL2PR03MB386; 6:HMUUrVfQEuN2bAXpGHRfqCrOtZpNQq2V3WmYBEX/ViJuSGMZkWAIksexuvPDpugQwb3+glVQNrT/a3Rzjo0MvL06/85rZ0difX/Mk8lAmUdIdDtpX0Xg65rFsc8i4oszIkA3mIgUcK7UZZ+juvmFtk9Wqmsvm+l0lShZUNaSu1fwfGwSS2PvyApH885hKPmlZ2nd/kYAyw+19rEZVBernk+wjas0HNheHRAKzN9ywdHPMWCTL2RmNwXXIH9IUQFHJpobJ0moctL/JLWbgZYxuNoK91zY4elCNBDXaIl1JHYd6yPQu8pWI6kGSWMYrjEJ3dvqvAK/flBcb6FE6KM3Rj1M98rg7wGThoW+8w2DCMDbA8ArvBwczVuiMAmLmo95KWWxwOrsCB0wF3FWbFFDjmxScS2cor0S10M8CFgYmpX4q63eyQ5X8/5J8Xm19HgKaJnhw6dHWvYlq5IxSTdnSg==; 5:ZJJAZMRI/0JY/FQvAzBUwN/IYV4dk4ehseYbj+TAihVR2lyWhXiciqhirqmgqI/gP7zuYxwiuQJb34Urq0QdjviMeumCwMm2GxPWkMV7KDAu3iwMzG7FzDPc3YqlAVIp5GD4uws35jJUGFsk5TZuVZpuhA8Idj1QL0gzDeoHXdZ5KbmrvjmeKQiSQopZbxZO; 24:R40aVc1VqCc3dEBFvALH2ZApxnn3rxTX67kVXU3zH/N20UnYbhdvrgEZvNd4y7X1akZP7ntWTfoQyWY39Wt3FXM39yl8WvntYqVUo3CENGM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BL2PR03MB386; 7:a68OuajTAgRCHvrXW2u4fKa9W2vVWyXnYWtn/K14flgYsRIOf8IKtPh6SuLFOVDkkRrd/uNH8A6Xh2ml8+dpGsvQ5oQ/y4JI6LagKE2YsaE1aCFBisV2agOKN41pa4g/YUK1+4czw1DFX/kIWHLsfoLHdhx1nOvyMDB7EuMrdKsWA2aZh6HmFbeI7HZMgihBzRm3gusk8CIacr4v9DM7p9hYCsLyKjBgno9q8qhK2F1yNYE4l91esi49l5BfenGDRPGILcpnVCttIdSsBlPxyRd4rBqlqKPCeFUGwJOrX3WQu+PGeKpU64HaEL6l2o4bOLsSEVDxYhh4lKTQInPzFA== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2017 08:09:21.8283 (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: BL2PR03MB386 Subject: [dpdk-dev] [PATCH v11 02/22] 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, 09 Apr 2017 08:09:25 -0000 This patch adds the NXP dpaa2 architecture and pmd details in the Network interfaces section. Signed-off-by: Hemant Agrawal Acked-by: John McNamara --- MAINTAINERS | 1 + doc/guides/nics/dpaa2.rst | 614 +++++++++++++++++++++++++++++++++ doc/guides/nics/features/dpaa2.ini | 9 + doc/guides/nics/index.rst | 1 + doc/guides/rel_notes/release_17_05.rst | 11 + 5 files changed, 636 insertions(+) create mode 100644 doc/guides/nics/dpaa2.rst create mode 100644 doc/guides/nics/features/dpaa2.ini diff --git a/MAINTAINERS b/MAINTAINERS index b783014..4b05cfc 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -370,6 +370,7 @@ M: Shreyansh Jain F: drivers/bus/fslmc/ F: drivers/mempool/dpaa2/ F: drivers/net/dpaa2/ +F: doc/guides/nics/dpaa2.rst QLogic bnx2x M: Harish Patil diff --git a/doc/guides/nics/dpaa2.rst b/doc/guides/nics/dpaa2.rst new file mode 100644 index 0000000..7d7a6c5 --- /dev/null +++ b/doc/guides/nics/dpaa2.rst @@ -0,0 +1,614 @@ +.. 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 +~~~~~~~~~~~~~~ + +Reference: `FSL MC BUS in Linux Kernel `_. + +DPAA2 is a hardware architecture designed for high-speed 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) | . + . . +-----+------+ . + . . | QBMAN | . + . . | Driver | . + +----+------+-------+ +-----+----- | . + | dpaa2 bus | | . + | VFIO fslmc-bus |....................|..................... + | | | + | /bus/fslmc | | + +-------------------+ | + | + ========================== 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. + +Additionally, it also provides the object driver for generic MC objects. + +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. + +DPBP based Mempool driver +~~~~~~~~~~~~~~~~~~~~~~~~~ + +The DPBP driver is bound to a DPBP objects and provides sevices to +create a hardware offloaded packet buffer mempool. + +DPAA2 NIC Driver +~~~~~~~~~~~~~~~~ +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 +------------- + +There are three main pre-requisities for executing DPAA2 PMD on a DPAA2 +compatible board: + +1. **ARM 64 Tool Chain** + + For example, the *aarch64* Linaro Toolchain, which can be obtained from + `here `_. + +2. **Linux Kernel** + + It can be obtained from `NXP's Github hosting `_. + +3. **Rootfile system** + + Any *aarch64* supporting filesystem can be used. For example, + Ubuntu 15.10 (Wily) or 16.04 LTS (Xenial) userland which can be obtained + from `here `_. + +As an alternative method, DPAA2 PMD can also be executed using images provided +as part of SDK from NXP. The SDK includes all the above prerequisites necessary +to bring up a DPAA2 board. + +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. + +.. note:: + + Some part of fslmc bus code (mc flib - object library) routines are + dual licensed (BSD & GPLv2). + +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_FSLMC_BUS`` (default ``n``) + + By default it is enabled only for defconfig_arm64-dpaa2-* config. + Toggle compilation of the ``librte_bus_fslmc`` driver. + +- ``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_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 accelerators. + +- ``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_TX_FREE`` (default ``n``) + + Toggle display of transmit fast path buffer free run-time message + + +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: + + .. code-block:: console + + 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=0x3 --nb-cores=1 --no-flush-rx + + Example output: + + .. code-block:: console + + ..... + EAL: Registered [pci] bus. + EAL: Registered [fslmc] bus. + EAL: Detected 8 lcore(s) + EAL: Probing VFIO support... + EAL: VFIO support initialized + ..... + PMD: DPAA2: Processing Container = dprc.2 + EAL: fslmc: DPRC contains = 51 devices + EAL: fslmc: Bus scan completed + ..... + Configuring Port 0 (socket 0) + Port 0: 00:00:00:00:00:01 + Configuring Port 1 (socket 0) + Port 1: 00:00:00:00:00:02 + ..... + Checking link statuses... + Port 0 Link Up - speed 10000 Mbps - full-duplex + Port 1 Link Up - speed 10000 Mbps - full-duplex + Done + testpmd> + +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 4537113..503fd82 100644 --- a/doc/guides/nics/index.rst +++ b/doc/guides/nics/index.rst @@ -40,6 +40,7 @@ Network Interface Controller Drivers bnx2x bnxt cxgbe + dpaa2 e1000em ena enic diff --git a/doc/guides/rel_notes/release_17_05.rst b/doc/guides/rel_notes/release_17_05.rst index 4968b8f..4c24550 100644 --- a/doc/guides/rel_notes/release_17_05.rst +++ b/doc/guides/rel_notes/release_17_05.rst @@ -16,6 +16,17 @@ DPDK Release 17.05 xdg-open build/doc/html/guides/rel_notes/release_17_05.html +* **Added a new driver for NXP DPAA2 - FSLMC bus.** + + Added the new bus "fslmc" driver for NXP DPAA2 devices. See the + "Network Interface Controller Drivers" document for more details on this new + driver. + +* **Added a new driver for NXP DPAA2 Network PMD.** + + Added the new "dpaa2" net driver for NXP DPAA2 devices. See the + "Network Interface Controller Drivers" document for more details on this new + driver. New Features ------------ -- 2.1.4