From patchwork Thu Sep 28 12:29:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Shreyansh Jain X-Patchwork-Id: 29301 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 8A4CD1B22B; Thu, 28 Sep 2017 14:20:31 +0200 (CEST) Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0043.outbound.protection.outlook.com [104.47.37.43]) by dpdk.org (Postfix) with ESMTP id BF1161B1C4 for ; Thu, 28 Sep 2017 14:19:44 +0200 (CEST) Received: from BN6PR03CA0081.namprd03.prod.outlook.com (10.164.122.147) by DM5PR03MB2700.namprd03.prod.outlook.com (10.168.197.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Thu, 28 Sep 2017 12:19:43 +0000 Received: from BY2FFO11FD038.protection.gbl (2a01:111:f400:7c0c::161) by BN6PR03CA0081.outlook.office365.com (2603:10b6:405:6f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.56.11 via Frontend Transport; Thu, 28 Sep 2017 12:19:42 +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 BY2FFO11FD038.mail.protection.outlook.com (10.1.14.223) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.56.11 via Frontend Transport; Thu, 28 Sep 2017 12:19:42 +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 v8SCJ72A008785; Thu, 28 Sep 2017 05:19:40 -0700 From: Shreyansh Jain To: CC: , Date: Thu, 28 Sep 2017 17:59:37 +0530 Message-ID: <20170928123000.1711-18-shreyansh.jain@nxp.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170928123000.1711-1-shreyansh.jain@nxp.com> References: <20170928113344.12248-1-shreyansh.jain@nxp.com> <20170928123000.1711-1-shreyansh.jain@nxp.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131510747823810835; (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)(7966004)(336005)(39380400002)(376002)(39860400002)(346002)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(6306002)(106466001)(76176999)(356003)(6916009)(36756003)(6666003)(2906002)(305945005)(2950100002)(4326008)(50226002)(8936002)(81156014)(8676002)(1076002)(85426001)(50986999)(5820100001)(81166006)(105606002)(97736004)(53936002)(498600001)(86362001)(189998001)(2351001)(104016004)(68736007)(5660300001)(54906003)(5890100001)(47776003)(50466002)(8656003)(77096006)(33646002)(2870700001)(316002)(23676002)(217873001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR03MB2700; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD038; 1:sjrFfN4hdzoXuUWRDQU4otB1E4/DX/XXYlN0nKdD7UdzZbYiMAEWj/TGGYaI7FUrNAHHRppSZWkJa26FMbfCC0NUfVC4EQbHISROXPfhpqRa9OLwu13mihbuB3BXSLHA X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f93d30ce-e46f-4434-c7b2-08d5066b32a3 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017052603199)(201703131430075)(201703131517081); SRVR:DM5PR03MB2700; X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2700; 3:WcBRLyLEkHMLTghOmcSN8FTVmPLmA2K329hm0ytoOWqRT8pSJSJ1+zUEmnJFuQu1kqCIUAlx6QseKtgEF3Dzg3uNqwHKki3MjaWJ5+PZgPPXTmf/hmp1yAVzjAamSpLIg6rIYt+ptoUQ09o4bp1RqqhMfWZ66jsJgKYuGoSa4ke225SQ6sm1nkYNhuYo3sdIbQNYx8ZjJBhtt6hIV0s+71DoRJErmbNX/JF1U+j8chz2cnkrxwqV6KKL336PBgUEj3ji5puVPt2+g92771j+UvfQUZAgbK5OptXezBM2ClrV3TJRYNUm9hzaSf2yiJlEHSAkeYygQMTum91kLCC+I0r1xfARZMUL55E8JWIx1ko=; 25:In1kIs8Qh/6hwl7o2AI+XcaTJFwl0Fmq8sSZwZ0M+R6LE4Jl+du/jPJ7VtMSsfGWM7YtncmB82OEg/l7NCEQeDwZh1hBbxj5l8b/O5G+0NGxwepEeVWjB05K/EypJQVC+F3e/3RZAuEN9qUKEFHbgTMOEgV9NDycKM2ix30pQJaTbV7XmCJl8dYN44TKJCCwTsAAz+/SO5R3LxCBClIM8geUA5Vv2LwJMvv6FyA8Z8RDUeIJdvTcn8c0OIjtgmyfXJjNIXSAvZCPFtcqetJ5vfGpGI5FoUrbk7GhbBPxXC0ZAkGhW6kWxMVW7p/M91wULI8KliEAqq4U2FLLALgqmw== X-MS-TrafficTypeDiagnostic: DM5PR03MB2700: X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2700; 31:76p7/l6LLClp2XZcXb6l5jvjGmG2tOirIaCrrMlWXMc+6e2vHCb2/HDxTwxeqyswEtp4C+W8fFP/61Agwt1C5M1Dv+PWVGI/Cwf4UDTpto0LsQLCb1GVcU6hCg1oVD9C2MUnxMalcWBFNDQsYXgU3VSN0+YuWT3ydOF9LQPRBzZsDzszLv6/GcwP92oIjlUnb3IHb3ChVkHC2ParJHXJ/s+rtfKWHK/RsN5lhoQ2u8A=; 4:pNkdP4/4ZU/fMxnDCWzrae50epV9AzI8JQMYLugZnBs9urqZpXNeGH7J7sxK6QdQukHqgmdt8VArrVBl/l5OIlf1TFfqGDUqLF/qJl63sCymfSD454/5BGBnTHfxr143VeDANpCElkP6H5lbateHxJgSrqipi+mFtOlpV37C7bfkfPO/eDmzcHmlbVVxv7Rl4/94TjAJMebL8RfOBvo/gG8X0aXWtt8DfxxQnkJcwArC5i356no/MI4HfMKopshoiLDGfYRBN4NWL07cvuBOidE9arUG2RpFA7EdJn9nDoBT5gMLVVUXyoMso1GFdlgDJ1kaFimB/8t23p5fmZwBKq1pg6bwwgKJfrF/ZYlao2LlnnhIsJCZOq0tZCd8C8jEfy52BR4dS00Yngv07J78514XyFQhX4JMHko1FTJ60/EupgHaogC7ON7mDoJtexPzyp9oNui4AdUaNsjdqH7zK3H+h/eVqTKCz/CBoxQ+7HvIX7HoEnoM+J6jlV/ozrGP 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)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(6055026)(6096035)(20161123556025)(201703131430075)(201703131441075)(201703131448075)(201703131433075)(201703161259150)(20161123561025)(20161123565025)(20161123559100)(20161123563025)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM5PR03MB2700; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM5PR03MB2700; X-Forefront-PRVS: 0444EB1997 X-Microsoft-Exchange-Diagnostics: =?utf-8?q?1=3BDM5PR03MB2700=3B23=3AHe/t?= =?utf-8?q?7rv5UcvMEMfOZV0onDqE5q5EUq+h3AhP+OH+9dflX+JAiWWNIF6HmP1t?= =?utf-8?q?QLu7vvU77gSVojpV+mvMPtWoletU7np4lFOhw2A0D74iavKp4uRlkyN1?= =?utf-8?q?0mtaCXj57ZlpXpaJnDSMfS7ON3aun0UE/Pz94gr4n/mm8rXknrUnrP+2?= =?utf-8?q?pG0DFWfk28//U0tUfX3ndRiji7k1GKqoM7dxJoTetSXS9huh9z0QBTEc?= =?utf-8?q?xNaF35uHFA2A/NcI4L6kpOlkIpbnKzqVUJ21JyX9oCxIqJmwySQF+1YT?= =?utf-8?q?t0DbWxsprc5XqxvMnl2h6rSfTNL7rsQjRO8d3VEeuBnW6HAM+cOM0r9T?= =?utf-8?q?G8ZM9eM9lNpgUTQToJgLzl7xEjsdNRZZ55PFHYRpofIC+JvkscqHv10d?= =?utf-8?q?tqjOpxONzqxLpBujSipjoLhT7CJnZW5gXGRX9gSVa8BMYB3eqRJieFX5?= =?utf-8?q?FIEJ/Hb9X5+UCZ1NPqPq2R1Y2ECG8cBanMrTXHTbjNKAzYTvSH9Z9Q/n?= =?utf-8?q?1aHLlQU3exfQTLyiSAEPyr0cPgh13n68UVddpy4GsIVB4ppF20eQnwvN?= =?utf-8?q?lVBmjSnPGZ7+66C33WNuXu1kfl7fL/2V0ers0IvI9Zsi2OGYM6NtA0Uf?= =?utf-8?q?NQpAurGLSuqttFKljtza6t7pbEvFwgjdjvf9wVHKqcVQOlM41fiEtob1?= =?utf-8?q?NGGYH7yEVNaqdPydcBPOTeqQpYw+29g+/nbhPRZ9LRgUXgI5vQ1/cdlI?= =?utf-8?q?io9sOVtm0sJELordMdupkKO+HOHv6O5v87yyB/T0n6HLRd3CuIE2yqkV?= =?utf-8?q?BSO4z1FjzV7SKWuCFswc0KdKpxvKpriIzk1+hbIvoWhkv4vPIPv8KtM/?= =?utf-8?q?isOjjHC8oFhC0pZ+hNStQ3e6j3vI/Ufv/2jDi5RQA4e+vIhZCq11+dLI?= =?utf-8?q?XOqIE3laJGOWTlUStG/Vh0xQ7YRx5fi2tDlWgk+ApS3lTGG0tO9IVlhq?= =?utf-8?q?c546zxdZojGB5TtL6gfPs2K2Myt3wBuAocDgIIdz8UVT+CdOWBGfPZqq?= =?utf-8?q?L2fIRHGPWibcOHZRelMNQ9FcRRJKQmfphIoUyKo5vF5FVX6e/osVX0v2?= =?utf-8?q?+2Hk8oZGVNcjkdbylQDc5iMMzv6GFw2DDaovGMXNoPrOm1cjW1HRhxDL?= =?utf-8?q?CVE+Pu8LX21zwe14HDD707xC3zo+Mg7YXpEgJrzf2jhoHIKef45PC2bL?= =?utf-8?q?ifa9RBtI5QApx36TuYXAEugHorJelfc5PNcGJ+Es0Y7h2e1jm1M70vz6?= =?utf-8?q?GENmt6kpDOXj6trr6XXklAsJZoFcTiVYxG7jBfh6d0fw?= X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2700; 6:yOQwELQ2tjSYonEEgTvBtLPLYx81RWpeO9dhpTTyijV5KbLb7Vj5Rz/6DEM1YNfjPEbomJxx/5upYPcS4Q5UnTMnwTkz4jsSBYjgZxtzMFUnHLi+8tt67vJtgNjUN0WtkhJ8VxJEnPfQTA6yWEfPXU+M/vWYmc2v1TXD2MGoyfN+klDTNVZlP3scK5NM8AZpq7VESXiosN/5I9KBb4wwscASyTELsnlZeL+L3a/Txm4R2wsz3d+34irX7mnedgQTl/MMXOvCNoq/d7/d/xJUlyJRpf87YYuNsP2j4TTHbvYs8ugfR2D+etjvTyYwAsNdU5m14Ck+KtfmRQUKLMzfKw==; 5:Bj3AVLRMcyx/VkW9BilhTnv33LMBfkA47j2Q+TBgC6vYjf687yx3AQYAg7KKoWoRi/IEwJxh08+gLWdgUfOVkpW+LJck2Gqdtc4TincLsh8RaqURz/tjuGHdEztHo56Oh1c2z94mStc0vTlu2CgQxg==; 24:4ds8c9WaOD3ADaxd7LyLdF6tqv2+DTbMEC02eg2lrSQEjZTPZB6QTy36VNq2QYI02+pKorTwldV+jcg32ei7uMrGt2nDUnLyRKbHMXCl4nE=; 7:hzNeScai31tNFKv9T1OKsWM3tEQzkg1iZcTpkNRU1dXrIWHUKxO0Y6ZjcY76lEHamw6WoGlVkV//7dFIyqvcm76/YptR5L05Plw+fxS2+LK5HYdMo1D9egFU+xN4IG9ynRu0TGweCGIQcdtyEA8Yyn7eqjmoEjcOt6rGtfIcwufN5cJEPSGdMRFOkw3IuTey/5oc2rPrjyiTKRyTq3JxFkbiHfBfQ9HwiF4bZzN/zc8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Sep 2017 12:19:42.1782 (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: DM5PR03MB2700 Subject: [dpdk-dev] [PATCH v6 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 | 377 ++++++++++++++++++++++++++++++++++++++ doc/guides/nics/features/dpaa.ini | 8 + doc/guides/nics/index.rst | 1 + 4 files changed, 388 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 c566962..dad876f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -412,6 +412,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..7d054d7 --- /dev/null +++ b/doc/guides/nics/dpaa.rst @@ -0,0 +1,377 @@ +.. 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``) + + Toggles display of bus configurations and enables a debugging queue + to fetch error (Rx/Tx) packets to driver. By default, packets with errors + (like wrong checksum) are dropped by the hardware. + +- ``CONFIG_RTE_LIBRTE_DPAA_HWDEBUG`` (default ``n``) + + Enables debugging of the Queue and Buffer Manager layer which interacts + with the DPAA hardware. + +- ``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