From patchwork Wed Aug 23 14:11:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Shreyansh Jain X-Patchwork-Id: 27788 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 4B23C9961; Wed, 23 Aug 2017 16:03:08 +0200 (CEST) Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0089.outbound.protection.outlook.com [104.47.38.89]) by dpdk.org (Postfix) with ESMTP id CDA9D916B for ; Wed, 23 Aug 2017 16:03:03 +0200 (CEST) Received: from BN6PR03CA0007.namprd03.prod.outlook.com (10.168.230.145) by BN3PR03MB2260.namprd03.prod.outlook.com (10.166.74.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1362.18; Wed, 23 Aug 2017 14:03:02 +0000 Received: from BN1AFFO11OLC004.protection.gbl (2a01:111:f400:7c10::145) by BN6PR03CA0007.outlook.office365.com (2603:10b6:404:23::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1385.9 via Frontend Transport; Wed, 23 Aug 2017 14:03:02 +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 BN1AFFO11OLC004.mail.protection.outlook.com (10.58.53.75) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1341.15 via Frontend Transport; Wed, 23 Aug 2017 14:03:02 +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 v7NE2Q33004389; Wed, 23 Aug 2017 07:02:59 -0700 From: Shreyansh Jain To: CC: , Date: Wed, 23 Aug 2017 19:41:50 +0530 Message-ID: <20170823141213.25476-18-shreyansh.jain@nxp.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170823141213.25476-1-shreyansh.jain@nxp.com> References: <1499179471-19145-1-git-send-email-shreyansh.jain@nxp.com> <20170823141213.25476-1-shreyansh.jain@nxp.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131479705826535086; (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)(39860400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(77096006)(86362001)(68736007)(6916009)(5660300001)(97736004)(50466002)(23676002)(47776003)(36756003)(305945005)(110136004)(50226002)(498600001)(81166006)(8676002)(2906002)(81156014)(356003)(8936002)(8656003)(85426001)(189998001)(2870700001)(5820100001)(33646002)(105606002)(2351001)(626005)(1076002)(104016004)(76176999)(53936002)(54906002)(5890100001)(2950100002)(106466001)(4326008)(6666003)(50986999)(6306002)(217873001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR03MB2260; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11OLC004; 1:2w8b16Zow+YIhpS/xUdcM/XiDkTu0smsE0nhkA2cTYkbQzFWKxeXNWNYSYsNz01KDhISnTsbwMmsqgmRbE2mqrG84XmOz9Hv4hr0stowbFNBpVnstnFQm+4RPnw/hUJL X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ac1f248c-14da-4cda-4551-08d4ea2fab6b X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603185)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:BN3PR03MB2260; X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB2260; 3:PIWDJRMReIva32p8POFnhr3qFE5yk/Oor1tz6t3UY4VSqOSn8KQiQkTnkxbxMVSzA5IFwkergemIOAtmXRIFoNISJrkFldpI6SIpUEZ8mWXl1MXyvROSfFXdnFIonQeW6abRwZdFomhDL00uQRxV+9mrFUasqtCoDW2zgv1455b151pdgVWSRHEL7PdKOk06I0onL0JlfdJQb9iJcACFS3NkuyW398gmWoXUbs1MYfeNhm2R42zDb5yJbQmTuJlZoWj8fWDQjE2bVh7Q2Bhoa9jbDJsnfS7UXP4Wb51+LrY8S3KE5HcUPpGUotHa9vmNCLtc1E1++oMHCfqYGwdM9j8pcU0WJekqNiNr5E98id8=; 25:BvR7yPE8UTh6DgpFj1wIjyLQ8KhN858Q/TIWQglOkEc00oYIXnmIJ1i3nC7RhOa4/R3XGe8N7kBg7HUNxtZo6BJrE+BeSgxGI1fvFxEanrM492dYXgaJRGqSVqAmCc0+Qm0dtnWF1XM6GHNwfRKxtQWaEcLhStiaRepM2wO1EeG+hhuH10VQRDazqOmkiSDIu/yWV7Y68JoK/owLeaKEcJH1NaSD+JXS6vUXiZDsgFAZKUJypkTjlCN894I1V/iQwcWmd0X3x5OdsEZsy/Uvs+yQKrHWOKHQwWc2Ik6cT9gyDb/n+gcXqK0S91yusE08gQHIihDzJpa8X1kYv0p1gw== X-MS-TrafficTypeDiagnostic: BN3PR03MB2260: X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB2260; 31:akAe8/PDoT/j4VDvOnIkdegEYhxqeetxlAMtC66RiVPPDmxmEuMemvmuzghnV3UYOE18KJ/xwlYOHrtmEsG6t4y4Ly4MqmnZHK0ABBlUOuEF3aKgM72tWkh5qSKDX59jwYvi/UIDL8UmdJmlU2OmcY9fQUklnhnf1zD51alGsCkS5H4KC4CgO3+Sn9LmB7c9SWAWPjERWHbMaROleDijiQ3cAIT415nHAC2+hKAlXzs=; 4:6lh7eXHKSvlubTjQK5Ve6in9ND7dTdtjIM/Rn4/zfLQ6tUyDukThR8jqoE3p3NhEs+ByD7xLuQbCZiVEgqoohjHhcCSMMAhrPsGocfakhKHGwwn6i2OExVNewPxZUspj1iCi1MYvLXrQy+lgPe4v2gtzRDwz2ZHI/C8GJ05ZXC4gfpBJ0sEGbUovPxrsFgIECMWW5MCV1fHC/VmbRaumZVECcjZBTkOj3DgCtU3Y7uZFMvrlv9G8v6JRuDptFH9mf7Ky5BehUnV9sJtV/7mwbaK7mfLu3EfZqn28bYigk4QZUTHN0pyx7Q2y/0/uvCczhZFQ14E/2+G1z9TEjK3XZx6V8J4s8BpUNnS0BBcvGwDl9EVjGTFS6a7O3JRO13FHP6J/xuLiGtD8tRVgR4zPoI9qDiLDIIYwLTtQkS/z8aJK3z5mjQOTtPDU7zMI9tB8lJrlAMhqQ2kN3+bgKwB72IXlVeiKsyMUCPwbfHdtxekJOp4C7XRJZnlGbenUDJZ2 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)(601004)(2401047)(8121501046)(13016025)(5005006)(13018025)(3002001)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(6055026)(6096035)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123565025)(20161123563025)(20161123561025)(20161123559100)(20161123556025)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN3PR03MB2260; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN3PR03MB2260; X-Forefront-PRVS: 040866B734 X-Microsoft-Exchange-Diagnostics: =?utf-8?q?1=3BBN3PR03MB2260=3B23=3AE53g?= =?utf-8?q?4f/Y+aZdQR1POf3TF4wQYofQaO3gxgDD7Zhl3QWUTFStfxLN/JCSYpLQ?= =?utf-8?q?LoRn+KPQqnJvDseW6KcmCd3B+apHWPcjzuPifm8XDJPNKJUX5Xb1RWEp?= =?utf-8?q?UrSQquFg3OhERpF+tl1z2H/bu1qSi0Z/Dl32pV5he4l38OLmX+7rDUes?= =?utf-8?q?FFlyYIJsoWscEEeMAG7QQwwVBgvz+1/zyhSI1h/T6apEKMZyWNMk5+kB?= =?utf-8?q?8ZT9uFDsCvuQ5Snwzx1bbApJZs4/VXFKW8XNz9BMo3DqAXXC5v696R8/?= =?utf-8?q?YXZWhUEF73CivzEexImTmVWFQiHzOjkYkbPT/Js3w10u2tDZHAkgMCnv?= =?utf-8?q?Vp1Bv03PDttFbZ2yz58lM+SXKb5h2krbAgZaiB4YBfd6l3poKOz6jEBb?= =?utf-8?q?LAh1BTslsXbXyEQPJQ2azayVuqYBrdCvOJS7AqKl7nVSW8wNwpE7TrPG?= =?utf-8?q?UtJPNhpKI/+QvsBcE4/hRORJM72AImJWuh2DfY1+qdroB6uIyz+jNJBm?= =?utf-8?q?e9SrIE/EImV+S3hfbFg2Ye80bHfyjN24LAMQqrGL6Sbz9mvUCgM9yhVu?= =?utf-8?q?xnPEKSN5OSN6hxefDhmUv+cq1vvMRKFU81lwvy0xVP/asZzsYQrbXjEZ?= =?utf-8?q?83WoXu982nMoPufZ8158ZMoIsIw5R6PFWcXh+F6ktiNZhgX3SgueoInK?= =?utf-8?q?c0F013CM9/sGEqiy6X8RzxQpphqa+Ln0ESX72KlbAF6N7+k/nkCLip9g?= =?utf-8?q?1QR/DYHEx9fmH4E9ESzoQhevp2K3vlqV8WMWMsSh8KkXI84QCgtRpr/R?= =?utf-8?q?+tuS/ePuivRSBOMYcuaTKmKBssMXva0DFRYUDnxoaKTGnsGRj5jEMC2m?= =?utf-8?q?MhAQ8sX/DCTSd6w86kFHLr2LF1gACYnw1S6yz2wqDe8fIS3VK4vchG8Q?= =?utf-8?q?0FZTHIPilQZS/lkWv0C3JiPSMbKl3Gjukz+Zpd7R51nQowNTZOH1l9W9?= =?utf-8?q?YykmHz67+KRpKdm8k8Drrx6aabTgV51P57uUpMk2lbBJ3kaMZ4McPoyF?= =?utf-8?q?vSwaaCZ1uQrkADN0SjYYcxqFsKJD2n5HOCtgt7KmBY2pS6OiMjeDp8pR?= =?utf-8?q?LonezrVglkNAYB/1N2cLP3aP47o2GB8lhhC7ClZf7aFOuEB5hCRGCud8?= =?utf-8?q?RG8Qnt8ZDiGgKs1nlfPi2c/lAhn1e2K1AnElA8Boxtp95pQ2xe41FvYZ?= =?utf-8?q?E+BhWKnuhxW7Jnz4gJ6lCIOe80vKicmfojjC91EiALeBMq0xUxFDSfQY?= =?utf-8?q?4Q=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB2260; 6:eAHdEaQ5OEUU4vc6A3IqQbihjxG8IYAB9a+K5OfUKgNyNpR/HhVN7nL1aeGP8LGhtkAfDn9BBplFvx7nbHe7rlS8vFbjHuj1NiABYBfmLXFUm18IuWUwLoeMaYIC7hyF+7WTyQ94l8gwOQ8yBrceKbR2IRM716UgSBfiBHOQj+texw9RYrEeI+tFUq/MVWO6aYXOIggzJ9nNzYLUg5EL1yWolUk2c1oUUKQi0cniZzejMwSzDob5iFA1uv5uG7SfIKUnZPK0lRq5gIWe9gCXQXNbadzbXfu20iPly/J5iOhlrgcejVseOro6OcryyogyAimPTDb7VBa+9FWfLyvuvg==; 5:m3F5r5yymt0CAMW8MMtfTxpt19ljNAbGj+x5c2WvvUtASiRpzN1Hx3Lzn1kImhgXfigeWiQ0Aaw8G85VH46OCETiTCwAYkV/4NlXOa52/3gLxqWiScgei11cV4jXhgn/l3EBKDTuXlXQWglhU/qXIw==; 24:E7UXsqKbrrK1ZHn9DfTvYZf3nqCf5k2qUz0fXD1Z1dbOotP8uJQUL6m39ebbBP1ZvLrUnq8fjZD2ZOZmnNKbKNVKmbB4H1b0/rbDYPdL038=; 7:UHhtOjOdIFPEp4snYt4mu7yTs2eTjrMM4LPg0OgQWrdYOcPRBolBYdIrTJqR1DfqK/ewJvvi3W3wxTuKs7SLabUGtHkIGA2ri2DiZFTQyrjPexeBusD3T447ZFY6ORIB7ayc7URywmS08Ad8xKvd1HT5IcY2jlV72MnBsOUkvEXB5iyuRzp5+FZ4ZWLQre5Nf2cDWdu2VX/vSQTZbZ8ky641JL4H0mdcK0M9sQSequ4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Aug 2017 14:03:02.3259 (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: BN3PR03MB2260 Subject: [dpdk-dev] [PATCH v3 17/40] 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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