From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <shreyansh.jain@nxp.com>
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 <dev@dpdk.org>; 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 <shreyansh.jain@nxp.com>
To: <dev@dpdk.org>
CC: <ferruh.yigit@intel.com>, <hemant.agrawal@nxp.com>
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
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
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: <DM5PR03MB2700513C2C665E2D3B92942B90790@DM5PR03MB2700.namprd03.prod.outlook.com>
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?B?MTtETTVQUjAzTUIyNzAwOzIzOkhlL3Q3cnY1VWN2TUVNZk9aVjBvbkRxRTVx?=
 =?utf-8?B?NUVVcStoM0FoUCtPSCs5ZGZsWCtKQWlXV05JRjZIbVAxdFFMdTd2dlU3N2dT?=
 =?utf-8?B?Vm9qcFYrbXZNUHRXb2xldFU3bnA0bEZPaHcyQTBENzRpYXZLcDR1UmxreU4x?=
 =?utf-8?B?MG10YUNYajU3WmxwWHBhSm5EU01mUzdPTjNhdW4wVUUvUHo5NGdyNG4vbW04?=
 =?utf-8?B?clhrbnJVbnJQKzJwRzBERldmazI4Ly9VMHRVZlgzbmRSaWppN2sxR0txb003?=
 =?utf-8?B?ZHhKb1RldFNYUzlodWg5ejBRQlRFY3hOYUYzNXVIRkEyQS9OY0k0TDZrcE9s?=
 =?utf-8?B?a0lwYm5LenFWVUoyMUp5WDlvQ3hJcUptd3lTUUYrMVlUdDBEYld4c3ByYzVY?=
 =?utf-8?B?cXh2TW5sMmg2clNmVE5MN3JzUWpSTzhkM1ZFZXVCblc2SEFNK2NPTTByOVRH?=
 =?utf-8?B?OFpNOWVNOWxOcGdVVFFUb0pnTHpsN3hFanNkTlJaWjU1UEZIWVJwb2ZJQytK?=
 =?utf-8?B?dmtzY3FIdjEwZHRxak9weE9OenF4THBCdWpTaXBqb0xoVDdDSm5aVzVnWEdS?=
 =?utf-8?B?WDlnU1ZhOEJNWUIzZXFSSmllRlg1RklFSi9IYjlYNStVQ1oxTlBxUHEyUjFZ?=
 =?utf-8?B?MkVDRzhjQmFuTXJUWEhUYmpOS0F6WVR2U0g5WjlRL24xYUhMbFFVM2V4ZlFU?=
 =?utf-8?B?THlpU0FFUHlyMGNQZ2gxM242OFVWZGRweTRHc0lWQjRwcEYyMGVRbnd2TmxW?=
 =?utf-8?B?Qm1qU25QR1o3KzY2QzMzV051WHUxa2ZsN2ZMLzJWMGVyczBJdkk5WnNpMk9H?=
 =?utf-8?B?WU02TnRBMFVmTlFwQXVyR0xTdXF0dEZLbGp0emE2dDdwYkV2RndnamRqdmY5?=
 =?utf-8?B?d1ZIS3FjVlFPbE00MWZpRXRvYjFOR0dZSDd5RVZOYXFkUHlkY0JQT1RlcVFw?=
 =?utf-8?B?WXcrMjlnKy9uYmhQUlo5TFJnVVhnSTV2UTEvY2RsSWlvOXNPVnRtMHNKRUxv?=
 =?utf-8?B?cmRNZHVwa0tPK0hPSHY2TzV2ODd5eUIvVDBuNkhMUmQzQ3VJRTJ5cWtWQlNP?=
 =?utf-8?B?NHoxRmp6VjdTS1d1Q0Zzd2MwS2RLcHh2S3ByaUl6azEraGJJdm9XaGt2NHZQ?=
 =?utf-8?B?SVB2OEt0TS9pc09qakhDOG9GaEMwcForaE5TdFEzZTZqM3ZJL1Vmdi8yakRp?=
 =?utf-8?B?NVJRQTRlK3ZJaFpDcTExK2RMSVhPcUlFM2xhSkdPV1RsVVN0Ry9WaDB4UTdZ?=
 =?utf-8?B?Ung1ZmkydERsV2drK0FwUzNsVEdHMHRPOUlWbGhxYzU0Nnp4ZFpvakdCNVR0?=
 =?utf-8?B?TDZnZlBzMksyTXl0M3dCdUFvY0RnSUlkejhVVlQrQ2RPV0JHZlBacXFMMmZJ?=
 =?utf-8?B?UkhHUFdpYmNPSFpSZWxNTlE5RmNSUkpLUW1mcGhJb1V5S281dkY1RlZYNmUv?=
 =?utf-8?B?b3NWWDB2MisySGs4b1pHVk5jamtkYnlsUURjNWlNTXp2NkdGdzJERGFvdkdN?=
 =?utf-8?B?WE5vUHJPbTFjalcxSFJoeERMQ1ZFK1B1OExYMjF6d2UxNEhERDcwN3hDM3pv?=
 =?utf-8?B?K01nN1lYcEVnSnJ6ZjJqaG9ISUtlZjQ1UEMyYkxpZmE5UkJ0STVRQXB4MzZU?=
 =?utf-8?B?dVlYQUV1Z0hvckplbGZjNVBOY0dKK0VzMFk3aDJlMWptMU03MHZ6NkdFTm10?=
 =?utf-8?Q?6kpDOXj6trr6XXklAsJZoFcTiVYxG7jBfh6d0fw?=
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 <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Sep 2017 12:19:45 -0000

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
---
 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 <hemant.agrawal@nxp.com>
 M: Shreyansh Jain <shreyansh.jain@nxp.com>
 F: drivers/bus/dpaa/
+F: doc/guides/nics/dpaa.rst
+F: doc/guides/nics/features/dpaa.ini
 
 NXP dpaa2
 M: Hemant Agrawal <hemant.agrawal@nxp.com>
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
+<http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/qoriq-arm-processors:QORIQ-ARM>`_.
+
+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 <http://www.nxp.com/assets/documents/data/en/white-papers/QORIQDPAAWP.pdf>`_.
+
+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)       |
+                  .                        ^   |            +-----+---------+
+                 .                         |   |<enqueue,         .
+                .                          |   | dequeue>         .
+               .                           |   |                  .
+              .                        +---+---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 <https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/aarch64-linux-gnu>`_.
+
+2. **Linux Kernel**
+
+   It can be obtained from `NXP's Github hosting <https://github.com/qoriq-open-source/linux>`_.
+
+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 <http://cdimage.ubuntu.com/ubuntu-base/releases/16.04/release/ubuntu-base-16.04.1-base-arm64.tar.gz>`_.
+
+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 <http://git.freescale.com/git/cgit.cgi/ppc/sdk/fmc.git>`_.
+   This tool needs configuration files which are available in the
+   :ref:`DPDK Extra Scripts <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  <http://www.nxp.com/products/software-and-tools/run-time-software/linux-sdk/linux-sdk-for-qoriq-processors:SDKLINUX>`_.
+
+
+.. _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 <https://github.com/qoriq-open-source/dpdk-extras>`_.
+
+Currently supported by DPDK:
+
+- NXP SDK **2.0+**.
+- Supported architectures:  **arm64 LE**.
+
+- Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>`
+  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 <pmd_build_and_test>`
+for details.
+
+#. Running testpmd:
+
+   Follow instructions available in the document
+   :ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>`
+   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