From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0059.outbound.protection.outlook.com [104.47.36.59]) by dpdk.org (Postfix) with ESMTP id 378F81B210 for ; Sat, 9 Sep 2017 13:11:07 +0200 (CEST) Received: from BLUPR0301CA0004.namprd03.prod.outlook.com (10.162.113.142) by CO2PR03MB2263.namprd03.prod.outlook.com (10.166.92.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.35.12; Sat, 9 Sep 2017 11:11:05 +0000 Received: from BY2FFO11FD047.protection.gbl (2a01:111:f400:7c0c::164) by BLUPR0301CA0004.outlook.office365.com (2a01:111:e400:5259::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.8 via Frontend Transport; Sat, 9 Sep 2017 11:11:05 +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; 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 BY2FFO11FD047.mail.protection.outlook.com (10.1.15.175) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1385.11 via Frontend Transport; Sat, 9 Sep 2017 11:11:04 +0000 Received: from Tophie.ap.freescale.net ([10.232.14.39]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v89BAUhH026326; Sat, 9 Sep 2017 04:11:02 -0700 From: Shreyansh Jain To: CC: , Date: Sat, 9 Sep 2017 16:51:08 +0530 Message-ID: <20170909112132.13936-18-shreyansh.jain@nxp.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170909112132.13936-1-shreyansh.jain@nxp.com> References: <20170823141213.25476-1-shreyansh.jain@nxp.com> <20170909112132.13936-1-shreyansh.jain@nxp.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-EOPAttributedMessage: 0 X-Matching-Connectors: 131494290648879302; (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)(39860400002)(39380400002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(2351001)(105606002)(106466001)(23676002)(498600001)(33646002)(50466002)(8936002)(2870700001)(2906002)(356003)(8676002)(81156014)(81166006)(50226002)(189998001)(1076002)(104016004)(5890100001)(5820100001)(53936002)(6306002)(305945005)(54906002)(8656003)(110136004)(4326008)(2950100002)(6916009)(5660300001)(77096006)(68736007)(47776003)(36756003)(50986999)(86362001)(76176999)(97736004)(85426001)(217873001); DIR:OUT; SFP:1101; SCL:1; SRVR:CO2PR03MB2263; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD047; 1:PZIaMrSKbQ8xXW1eqQGAZ9nDHIc3JHs3t81CNOdrMB7sfOpS/+sabCNCJLW6CgOrsRC+MjHXf1cD4fUBwR8mTA8hqxxaBSy0OJKJgiFsFcWNKZfczUmvR7O7r+C95pN6 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e4d7c406-70f2-4f6b-50c6-08d4f7737695 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603199)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:CO2PR03MB2263; X-Microsoft-Exchange-Diagnostics: 1; CO2PR03MB2263; 3:Ok6S9+HeR739O0FJaVQW7LwXWZz4Vq2FIDHYvoN7Jk1FNNUYUnP7rmuToh3902Xe+Cvk2qZHZiExq4tm0NP88un6cK6klExQ0Q3+YalFEyHANcgyglBCDb8X4RLHZ0WDEH/zaRGGNGD7wVJPHTSRxH/2D/FFpA5omxckXJnfPhJaj7IGZcHCGSLnOpfhHqK79MXkwAjX4XrXm28WweH17vfh2aMKzy8Tx5XfLhg/0dcnLlTPiz6c0N2mcC18BadWLbqDBaL5L22hXLTGASPH7h5GYP1Szi86/mh7czJG0KISYaGMIqx2aNILRu9DYdYxxaerFX392PTUObR+cLj2w6r5NLKHudSQCCR0cfDz/eY=; 25:Cltw+yR2NrqowsSzHU60rfs7LCNGyDaEYnWfz1udOk7l+kHnhtfXn1TawuY3h7rdaoXkSTg7XFZ7Okx5PQs7BW0SlI7gqzlV9TAOcOFXG28bjXICWDINGBo/JiBhbtEuN9/murvx+Voc1lQ7DgRYsB0maRb5rQo9jrdtY5KXgQkp0nvDq/omk6GEujaGEVYKoDXawRnc5TKTk0FF0fJlFr9VrNFka9nO+W143rXclM7fzeWLdt04AYgYqQgVJEib7Rkmdry96YExHeqUAWWHKRh8kd+uO43mFeyBQli9wYsWYr1QbhAhNyMM0UJvftdYLJRo4NafDqx4500bry9R8A== X-MS-TrafficTypeDiagnostic: CO2PR03MB2263: X-Microsoft-Exchange-Diagnostics: 1; CO2PR03MB2263; 31:W8GARwH0L24o55F8m46rRPcIzklR4BGX/BSBgp3p3R1WLq0eEESHyv/3JvCV4OAYYHK/nA8sIkgYqeY+V5/ySy2GgrIBfq7iF69VjeNnwthVXoUzDhV2kGQ58yb4BYWfgeUhDEqSDKhsDvGQ6nNWus+lk+VL+vvb9zkD3+8z8dHFJ0Nm2BuGC2s5oP3rQIs/Fzny2/Hq8FVAU0DkGL4nDFgkFMy8QZJ7nenb1Bj16HY=; 4:pSfRzzIZXGCckzBkue+2L7BP9K9Du8b3KaU1aVClQJbz55oZk8p5Y46FtOsSzPJPC79iXUMXLER0ozv/AlmB8+2htpvvRWSytixkxHy5UTHaZMJYbGuWGCLuZKmUoTAaUBF0XQouokWf4Yw9kCyEyobiTpDdd8Y1JPKmKF93YVfoHygr0PZMpcxvTirXMZYhcIEZ9XKsnwFpsTfG8zo6VRTu0TN9aSMd/O3tAY5NP7c+1aAIPslIPTWJSXOKD3l2k8P1g6xnEozwkwcT2kvU7AU5eNDBB8/w/cf5fMq/bn3jerlSq/p9KqIWHP6OCSQ4IMkuxZMgDY2RcNe7BAr49HoMStixRQ5K0VruxS0fFwdsy3FtZCwrhSYLUHnY8vyI5buSvRJ5vhatredXd07SNecLsFJNbhJJRmAShd+NIS4eStIKuuetNyyczSMJAddxS66eHkHeObiiM6Ng9Kq8a6ZultT0D1tbWMkI5rRuqpfyBExk/o25UvEKA/AUXK+U X-Exchange-Antispam-Report-Test: UriScan:(278428928389397)(166708455590820)(185117386973197)(101931422205132)(275809806118684)(21532816269658)(264314650089876); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(2401047)(8121501046)(5005006)(3002001)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(6055026)(6096035)(20161123565025)(20161123561025)(20161123556025)(20161123563025)(20161123559100)(201703131430075)(201703131433075)(201703131448075)(201703161259150)(201703151042153)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CO2PR03MB2263; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CO2PR03MB2263; X-Forefront-PRVS: 0425A67DEF X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDTzJQUjAzTUIyMjYzOzIzOlcrdVVPc2JGN3lPMTBReHFEclhpTFBIWkox?= =?utf-8?B?YVpLNjNZbFpIbTZ4UWVNRDI2ZGRyNVZDcHVnMkNvWDdjUUNKdkd5d05xbWRE?= =?utf-8?B?dHFZZXlTbVJBT2ZYcGlxWExKWjJhT1RSVE1QakVESmpMcWRiQjJleWJ4Tm1J?= =?utf-8?B?ZWRFS0dUS2tjZ0FKMHF4aGlMcUU1M1dLYi9mcm13bG1QL0lTRkkvRTU2WllL?= =?utf-8?B?cTM3d0NwOEdVM3FjVXM2eDR0WWYrMEw0TXU3UHY4b0gxRjVtME9lbUlndUdD?= =?utf-8?B?YTcwNmxQVjNaY1lUTTlWMUZmekxLbkQ1T0VXRHRqc1lQa0Z0TVo3ZVFWWEtq?= =?utf-8?B?N1pHWjMvbm1hQzBmWUg0Z0ZBeWloNkRWTlhUcTZWa2FLb2xWRUJOR01UR1VU?= =?utf-8?B?Y3VDdm1wSTBBVmlPa1NnaGE1cXFOYTkyRFpEWGRJV0ZDbVJiRTVOVXFBL3Bk?= =?utf-8?B?bEtmQjdkUERMOFNEaDhnVUNXQzUySWNhK3hoUjlQNTRLYlpoYkcyNEdKbmhk?= =?utf-8?B?clFodzhJenZBWHVFSTNZS2ZJamYvdXBVSDhmMHpUQ290MlF2cENLeWlHcm5s?= =?utf-8?B?cHhidnpMdDFvaE9BVVkvR1NudWgzNk80SHNHOWxLbEhZblkrU3VScXB4ZXgv?= =?utf-8?B?MldtMldtRlB4NFhFZWxPOEw5ZG5KWlRmaUZTTzQyUmxpblgvN0MyQlBraE82?= =?utf-8?B?QXlXVS95dDAwbVBZV0VIMXhUbFhkKzYwMXptN3FSQWxzUXdXSVhRMjR6OVA4?= =?utf-8?B?OFRRbEJybjZ0ZXhjYjVDV0FOZ2VRTSt5NHF1TWEvQktMQnpqYUszbkFqVmZi?= =?utf-8?B?K3RxOGIyTnM2cEd1dGNnVUwxWEE1cTRXN2dFQ0V6cjA1My8xejRKTEN2eTlT?= =?utf-8?B?NW1heU9Cc3oyRjU2Ym1wNVg4UU1MbkJUUUlaZWp3cVBld2FwTWJyUitzSStV?= =?utf-8?B?TXZQWjVVRHVCWjUwelZzdzlBUnI4OWdET3hhZU9SWUh4V2FBZ00wRnI1QXF6?= =?utf-8?B?Q0s0NHJzRis4UFhnbTVRVzVldjdkb2cwWTRsK0lMdEZRK1NEZkZEbzhPcm1v?= =?utf-8?B?Ukh3YStEYzlxeC93UUIxUlJSQmY0UTA1SjFpVWphREhPT3RzZEhEWmE0ZmhU?= =?utf-8?B?K2dDQ2R6TWZwbEtpRTlaNTRrMXVHbEVmQkFZTEdUaEdmUVdzblIwY3VaQUJZ?= =?utf-8?B?dFpvcFVZZ1BjbkpRYlphTGY0M1orandWREdSU0I3ZDAzN3lGM2JkUDY5aDht?= =?utf-8?B?UE0xdUNNdERXcVY3YTdoS08yQWNZNk1RRnk5MmU0cDZnMDM3VC9jdWdqYW9P?= =?utf-8?B?TkRCR0gzYjVWb1E0Q2tCdGU4aVhiN1lkaWNvT0NYR3ZnV1RrbWI5cDI4R0h0?= =?utf-8?B?dUJma1pBbkFJQzRMZGNSQlpRMDRBYmkyRmlYOHY4RloydmdGekdnSHpDZTlR?= =?utf-8?B?cmluQmhiOWRNUTMyZkNKbGN3UzczbG5QSUppRWtXbkgyeTNva3p0R3VqUmpM?= =?utf-8?B?NzNjVklyRWJUM1kyNkh6OGZad3BqcHp2dHB3bENnK2VEeUd2WWhNT3pUL0NU?= =?utf-8?B?T0gvQm1QclRPd0JXa0VJRWVEOVdQNDdRZHNGVCtvMkc3MTg0alQ4cTk5SjdR?= =?utf-8?Q?uWw6Ec+rL7Yn8HYSHzPe?= X-Microsoft-Exchange-Diagnostics: 1; CO2PR03MB2263; 6:mnD+wa2FaZo1aQj6xROpVfsdpPwtaTnFhOLQKkqHiF3/AiOGX9d1lqV9mgqUYWFIIqKKA3sRhMjPNx6u7rVDmVmlwT5bLezMnmDMt2sfOfbIxW4lsWfxZvPXxSC1azakQNhUKyXrdNuuSDXdwwmy/jNsew/yRaJJiCRcsCOVJRJmm+yexF2v8eA41Aafh11OGdAc3vCobZoMHkGpErSx/C0rV2ITLyurl63GKtGcet575s14KR6fMqyeHx3KlM6Fx+PXpSht3Ey6PtfYVQFwVRVUIPtVsHSz1EzxdXXQBsNkolE/g/QW8wR8Um9PaiOotL1sFL43Ws7G/G1mk3VUPA==; 5:GkT76nLF7UzDXRVWXrj/Q1PXW1A3reNub/Q2PgRSCuOA5Y0eXowXCBBTvS9Eo8UZiMVHn5ZaZ30Cl2JoydEwoE4efn8M+D7D1eDSh76IlDwutsBUWZE7PGvXvvIJr5j8RGEkm2IKQ5P68QGvZEztSg==; 24:Dh1H6r8aL/KA7W0nd8sq4oLfSCDBuYNABXcKDWIn9Z17l0uhuCaLSgxVW5SBMeE5yb45ItzvlYVyl+GkcCAn1nJFIq7/tI9KSB2YXRRPucg=; 7:GkYSgEiAV+eAnWTT7j8bg2foHgawS8cbMEz8dq8y7BBpp5lDzS9F3ET79shO1QLGm+8r1CVUu/LWh52w5bMEQ3GCjq8/+Ls6CqBBgBaxvxR4G9BJcDuKRtSmIR1e8dhgg5jgYVVSkdQizAgDRHbcNHlgmm+/0o6voVc2MAOryxk9e8kiOS9tLqyugr2oOHn+hoZ8Br/YmaOnLoDZ7D4T6My62kJO+68lrmJYKgg5G+k= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Sep 2017 11:11:04.6851 (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: CO2PR03MB2263 Subject: [dpdk-dev] [PATCH v4 17/41] doc: add NXP DPAA PMD documentation 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: Sat, 09 Sep 2017 11:11:08 -0000 Signed-off-by: Hemant Agrawal Signed-off-by: Shreyansh Jain --- MAINTAINERS | 2 + doc/guides/nics/dpaa.rst | 374 ++++++++++++++++++++++++++++++++++++++ doc/guides/nics/features/dpaa.ini | 8 + doc/guides/nics/index.rst | 1 + 4 files changed, 385 insertions(+) create mode 100644 doc/guides/nics/dpaa.rst create mode 100644 doc/guides/nics/features/dpaa.ini diff --git a/MAINTAINERS b/MAINTAINERS index 6ee20ce..10646a4 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -409,6 +409,8 @@ NXP dpaa M: Hemant Agrawal M: Shreyansh Jain F: drivers/bus/dpaa/ +F: doc/guides/nics/dpaa.rst +F: doc/guides/nics/features/dpaa.ini NXP dpaa2 M: Hemant Agrawal diff --git a/doc/guides/nics/dpaa.rst b/doc/guides/nics/dpaa.rst new file mode 100644 index 0000000..404efcb --- /dev/null +++ b/doc/guides/nics/dpaa.rst @@ -0,0 +1,374 @@ +.. BSD LICENSE + Copyright 2017 NXP. + + 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. + +DPAA Poll Mode Driver +===================== + +The DPAA NIC PMD (**librte_pmd_dpaa**) provides poll mode driver +support for the inbuilt NIC found in the **NXP DPAA** SoC family. + +More information can be found at `NXP Official Website +`_. + +NXP DPAA (Data Path Acceleration Architecture - Gen 1) +------------------------------------------------------ + +This section provides an overview of the NXP DPAA architecture +and how it is integrated into the DPDK. + +Contents summary + +- DPAA overview +- DPAA driver architecture overview + +.. _dpaa_overview: + +DPAA Overview +~~~~~~~~~~~~~ + +Reference: `FSL DPAA Architecture `_. + +The QorIQ Data Path Acceleration Architecture (DPAA) is a set of hardware +components on specific QorIQ series multicore processors. This architecture +provides the infrastructure to support simplified sharing of networking +interfaces and accelerators by multiple CPU cores, and the accelerators +themselves. + +DPAA includes: + +- Cores +- Network and packet I/O +- Hardware offload accelerators +- Infrastructure required to facilitate flow of packets between the components above + +Infrastructure components are: + +- The Queue Manager (QMan) is a hardware accelerator that manages frame queues. + It allows CPUs and other accelerators connected to the SoC datapath to + enqueue and dequeue ethernet frames, thus providing the infrastructure for + data exchange among CPUs and datapath accelerators. +- The Buffer Manager (BMan) is a hardware buffer pool management block that + allows software and accelerators on the datapath to acquire and release + buffers in order to build frames. + +Hardware accelerators are: + +- SEC - Cryptographic accelerator +- PME - Pattern matching engine + +The Network and packet I/O component: + +- The Frame Manager (FMan) is a key component in the DPAA and makes use of the + DPAA infrastructure (QMan and BMan). FMan is responsible for packet + distribution and policing. Each frame can be parsed, classified and results + may be attached to the frame. This meta data can be used to select + particular QMan queue, which the packet is forwarded to. + + +DPAA DPDK - Poll Mode Driver Overview +------------------------------------- + +This section provides an overview of the drivers for DPAA: + +* Bus driver and associated "DPAA infrastructure" drivers +* Functional object drivers (such as Ethernet). + +Brief description of each driver is provided in layout below as well as +in the following sections. + +.. code-block:: console + + +------------+ + | DPDK DPAA | + | PMD | + +-----+------+ + | + +-----+------+ +---------------+ + : Ethernet :.......| DPDK DPAA | + . . . . . . . . . : (FMAN) : | Mempool driver| + . +---+---+----+ | (BMAN) | + . ^ | +-----+---------+ + . | | . + . | | . + . +---+---V----+ . + . . . . . . . . . . .: Portal drv : . + . . : : . + . . +-----+------+ . + . . : QMAN : . + . . : Driver : . + +----+------+-------+ +-----+------+ . + | DPDK DPAA Bus | | . + | driver |....................|..................... + | /bus/dpaa | | + +-------------------+ | + | + ========================== HARDWARE =====|======================== + PHY + =========================================|======================== + +In the above representation, solid lines represent components which interface +with DPDK RTE Framework and dotted lines represent DPAA internal components. + +DPAA Bus driver +~~~~~~~~~~~~~~~ + +The DPAA bus driver is a ``rte_bus`` driver which scans the platform like bus. +Key functions include: + +- Scanning and parsing the various objects and adding them to their respective + device list. +- Performing probe for available drivers against each scanned device +- Creating necessary ethernet instance before passing control to the PMD + +DPAA NIC Driver (PMD) +~~~~~~~~~~~~~~~~~~~~~ + +DPAA PMD is traditional DPDK PMD which provides necessary interface between +RTE framework and DPAA internal components/drivers. + +- Once devices have been identified by DPAA Bus, each device is associated + with the PMD +- PMD is responsible for implementing necessary glue layer between RTE APIs + and lower level QMan and FMan blocks. + The Ethernet driver is bound to a FMAN port and implements the interfaces + needed to connect the DPAA network interface to the network stack. + Each FMAN Port corresponds to a DPDK network interface. + + +Features +^^^^^^^^ + + Features of the DPAA PMD are: + + - Multiple queues for TX and RX + - Receive Side Scaling (RSS) + - Packet type information + - Checksum offload + - Promiscuous mode + +DPAA Mempool Driver +~~~~~~~~~~~~~~~~~~~ + +DPAA has a hardware offloaded buffer pool manager, called BMan, or Buffer +Manager. + +- Using standard Mempools operations RTE API, the mempool driver interfaces + with RTE to service each mempool creation, deletion, buffer allocation and + deallocation requests. +- Each FMAN instance has a BMan pool attached to it during initialization. + Each Tx frame can be automatically released by hardware, if allocated from + this pool. + + +Supported DPAA SoCs +------------------- + +- LS1043A/LS1023A +- LS1046A/LS1026A + +Prerequisites +------------- + +There are three main pre-requisities for executing DPAA PMD on a DPAA +compatible board: + +1. **ARM 64 Tool Chain** + + For example, the `*aarch64* Linaro Toolchain `_. + +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 `_. + +4. **FMC Tool** + + Before any DPDK application can be executed, the Frame Manager Configuration + Tool (FMC) need to be executed to set the configurations of the queues. This + includes the queue state, RSS and other policies. + This tool can be obtained from `NXP (Freescale) Public Git Repository `_. + This tool needs configuration files which are available in the + :ref:`DPDK Extra Scripts `, described below. + +As an alternative method, DPAA 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 DPAA 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 `_. + + +.. _extra_scripts: + +- **DPDK Extra Scripts** + + DPAA based resources can be configured easily with the help of ready scripts + as provided in the DPDK Extra repository. + + `DPDK Extras Scripts `_. + +Currently supported by DPDK: + +- NXP SDK **2.0+**. +- Supported architectures: **arm64 LE**. + +- Follow the DPDK :ref:`Getting Started Guide for Linux ` + to setup the basic DPDK environment. + +.. note:: + + Some part of dpaa bus code (qbman and fman - 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_DPAA_BUS`` (default ``n``) + + By default it is enabled only for defconfig_arm64-dpaa-* config. + Toggle compilation of the ``librte_bus_dpaa`` driver. + +- ``CONFIG_RTE_LIBRTE_DPAA_PMD`` (default ``n``) + + By default it is enabled only for defconfig_arm64-dpaa-* config. + Toggle compilation of the ``librte_pmd_dpaa`` driver. + +- ``CONFIG_RTE_LIBRTE_DPAA_DEBUG_DRIVER`` (default ``n``) + + Toggle display of generic debugging messages + +- ``CONFIG_RTE_LIBRTE_DPAA_DEBUG_INIT`` (default ``n``) + + Toggle display of initialization related messages. + +- ``CONFIG_RTE_MBUF_DEFAULT_MEMPOOL_OPS`` (default ``dpaa``) + + This is not a DPAA specific configuration - it is a generic RTE config. + For optimal performance and hardware utilization, it is expected that DPAA + Mempool driver is used for mempools. For that, this configuration needs to + enabled. + +Environment Variables +~~~~~~~~~~~~~~~~~~~~~ + +DPAA drivers uses the following environment variables to configure its +state during application initialization: + +- ``DPAA_NUM_RX_QUEUES`` (default 1) + + This defines the number of Rx queues configured for an application, per + port. Hardware would distribute across these many number of queues on Rx + of packets. + In case the application is configured to use lesser number of queues than + configured above, it might result in packet loss (because of distribution). + + +Driver compilation and testing +------------------------------ + +Refer to the document :ref:`compiling and testing a PMD for a NIC ` +for details. + +#. Running testpmd: + + Follow instructions available in the document + :ref:`compiling and testing a PMD for a NIC ` + to run testpmd. + + Example output: + + .. code-block:: console + + ./arm64-dpaa-linuxapp-gcc/testpmd -c 0xff -n 1 \ + -- -i --portmask=0x3 --nb-cores=1 --no-flush-rx + + ..... + EAL: Registered [pci] bus. + EAL: Registered [dpaa] bus. + EAL: Detected 4 lcore(s) + ..... + EAL: dpaa: 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 +~~~~~~~~~~~~~~~~~~~~ + +DPAA drivers for DPDK can only work on NXP SoCs as listed in the +``Supported DPAA SoCs``. + +Maximum packet length +~~~~~~~~~~~~~~~~~~~~~ + +The DPAA 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. + +Multiprocess Support +~~~~~~~~~~~~~~~~~~~~ + +Current version of DPAA driver doesn't support multi-process applications +where I/O is performed using secondary processes. This feature would be +implemented in subsequent versions. diff --git a/doc/guides/nics/features/dpaa.ini b/doc/guides/nics/features/dpaa.ini new file mode 100644 index 0000000..9e8befc --- /dev/null +++ b/doc/guides/nics/features/dpaa.ini @@ -0,0 +1,8 @@ +; +; Supported features of the 'dpaa' network poll mode driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] +ARMv8 = Y +Usage doc = Y diff --git a/doc/guides/nics/index.rst b/doc/guides/nics/index.rst index 36f4f3f..4115141 100644 --- a/doc/guides/nics/index.rst +++ b/doc/guides/nics/index.rst @@ -43,6 +43,7 @@ Network Interface Controller Drivers bnx2x bnxt cxgbe + dpaa dpaa2 e1000em ena -- 2.9.3