From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <akhil.goyal@nxp.com>
Received: from NAM03-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam03on0085.outbound.protection.outlook.com [104.47.40.85])
 by dpdk.org (Postfix) with ESMTP id 595E52B94
 for <dev@dpdk.org>; Fri,  3 Mar 2017 15:23:58 +0100 (CET)
Received: from BLUPR0301CA0012.namprd03.prod.outlook.com (10.162.113.150) by
 CY4PR03MB2952.namprd03.prod.outlook.com (10.175.116.142) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id
 15.1.933.12; Fri, 3 Mar 2017 14:23:56 +0000
Received: from BY2FFO11OLC006.protection.gbl (2a01:111:f400:7c0c::166) by
 BLUPR0301CA0012.outlook.office365.com (2a01:111:e400:5259::22) with Microsoft
 SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.12 via
 Frontend Transport; Fri, 3 Mar 2017 14:23:55 +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
 BY2FFO11OLC006.mail.protection.outlook.com (10.1.14.199) with Microsoft SMTP
 Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.933.11
 via Frontend Transport; Fri, 3 Mar 2017 14:23:55 +0000
Received: from netperf2.ap.freescale.net ([10.232.133.164])
 by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v23ENi6V000351;
 Fri, 3 Mar 2017 07:23:52 -0700
From: Akhil Goyal <akhil.goyal@nxp.com>
To: <dev@dpdk.org>
CC: <thomas.monjalon@6wind.com>, <declan.doherty@intel.com>,
 <pablo.de.lara.guarch@intel.com>, <john.mcnamara@intel.com>,
 <nhorman@tuxdriver.com>, <hemant.agrawal@nxp.com>, Akhil Goyal
 <akhil.goyal@nxp.com>
Date: Sat, 4 Mar 2017 01:19:25 +0530
Message-ID: <20170303194935.30831-3-akhil.goyal@nxp.com>
X-Mailer: git-send-email 2.9.3
In-Reply-To: <20170303194935.30831-1-akhil.goyal@nxp.com>
References: <20170303193648.30665-1-akhil.goyal@nxp.com>
 <20170303194935.30831-1-akhil.goyal@nxp.com>
X-EOPAttributedMessage: 0
X-Matching-Connectors: 131330246360552014;
 (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)(7916002)(39380400002)(39400400002)(39450400003)(39850400002)(39840400002)(39860400002)(39410400002)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(9170700003)(6666003)(5890100001)(2906002)(76176999)(77096006)(50986999)(356003)(8656002)(189998001)(2950100002)(36756003)(6916009)(5660300001)(47776003)(305945005)(50226002)(8936002)(4326008)(105606002)(48376002)(50466002)(104016004)(626004)(81166006)(106466001)(8676002)(92566002)(33646002)(86362001)(575784001)(53936002)(1076002)(110136004)(85426001)(38730400002)(5003940100001)(54906002)(2351001);
 DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR03MB2952; H:tx30smr01.am.freescale.net;
 FPR:; SPF:Fail; MLV:ovrnspm; A:1; MX:1; PTR:InfoDomainNonexistent; LANG:en; 
X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11OLC006;
 1:r5xqoQofsxa9spEUM+Qj49gnA02jJFfl9o0k2a8VaeUwwhvMHUXnbG8f4vEAPU7QvinXgooEysjhJZZ0TJlEGBojhrmrXnVdWp0KSznR8qA/nq4hY7McoiAZciTMeHzzOS9nee7igATdKTIRxetMw8Ue07Wt7iR4QEztVxNPBSu8jfqKYLJoXBtKYviA5WPizvvK5CYCNynuEoIrFpnT/b2rYyMShH2GsSlzI2m+sUfwBvL9KBo3TtSH6lU3de+NDNATZ40vgnt+7qNUpu6OG3kSIyW/c3nMseOPIb1V7YjxA09B8ydBVvrmLRGYGIkERmUTckaFEnCxwu9nI7Bt79gEfyw1V82VDcxM8uWYKfffec4uM8u3p4RfYA9jBgJjSaT7FaCIw7o8Ty6OzTiwqNdBibBnBp6NBMOWrekwSuPJN1c5rDxcXWFbYuyPXbQ6ki4RuWrKDO5uzpdH0w128b4usiyNkzyMhR0vpQyPS8771XG+H2whNwWEdU3K7Rd36lggUsgS7i9t92X1ViFVd716+MdeCdu3RqHpLsTJfxX9GH8L1xQb8OozKs/4Rrr++qrOndxcCnUii16h+ZeZfpdJZwGrWYKE1C77RBDtDFwzlwPVzKlZtaY9zE+HPCWIYo/cNuPsAdzg4/NFaF4dPFYOHSWFpy+wOY5grDc3BBqCZdyV969FiOXfU3XsqbPbGqF2xhUjp6oyH0MFlCyq868dstr59ZG8k1+Zyr4OEXvGtOLxf4sGJdCd9COYA/lE
MIME-Version: 1.0
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: a47aec92-c9af-4a70-6609-08d46240ecf7
X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:CY4PR03MB2952;
X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2952;
 3:Bk0FAlFTburRBiZ4kEYo/kWEx2tYO+f45WegCaCXj6B9eGl9Ef29TnmwyQHuGUmBJ7FkZ3gcKrA3IyZqTtP3z0/v/K+Xs0XGNODQA7BoDZmPAFNRSIvqzCiPHv8b+fJpEqsppVws4qu6SZIMPmoyv0KyHglFa6CXE/lE4BQsJYdpEyiRD5+M5uj7whQ14YM7avIDcBZEWYErPwyo7BNzUK9fCysi+n/coGQEEYNonq/jjc1GM+6WWRnOID2aMWPBRNmLd/aptIMxA2mwfIjBoJVyrZTx0Z41itDeihr1rcD4YlftNoGDiuYZxh1LRMohxL2nVLoCFcfqALdYaLMcjyndzvOT8yhSde9/9MEhBoD06IeTqaWpQsiB2uvC7Vh+;
 25:y/g7UvJ2BDX9ouaPK1aSGgYdjgSpt3tmhrX6GpFqz73wYaaWyUlBnvZSNbJCbScncVAPgai3GvR6S+k2HxlEyYjQN350Zs8gtgLDSb0O4/pT9+NVFuJRbU7QZAAPX4mMCKf9Hq14tg1HS9FRy3cLxqi+/23eFEk+k32YqL2gHDveB0nVuGXoMlmdU6Pnihb42M18mbPWlO/XqC4Mk7iCypt/fQO497XHHaGexgHDyDsbhwcF7UPXE+tPX9b9wESEd39ckjCLkN8mAlko4u16q+Zsd4Fs+eVHI34I6AClBVUAsA6lakZ5myPDzUClOQECkWBDV1KCoIdNgPCvTos7pam+lSvGO5bjik5oFTt4T+NKy9o5Z+C8pSH1fAY1qjnt/LyhHUBJcGXxbuD7g5EYew4pl7sEeHHTo0OqzDs9zhSA2bK86OGHuCskGBnIq2bWUkvPgmTCi7g+aHBxRM12Eg==
X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2952;
 31:tCgHNBAEk32Q2RjLM+4YSpijsZJViI4QgQtmh3Mz5+/qWG3jxeSLECCZkOsOyGO6ZoVpToNl6I1hTy6KmBUelOKfCPaelU2GUbVsdZ+Q62IfpRGOrjJJv+t5pCZZwVprCHl5kQ9KOXemq20zej05v5AApiuQ1PtdNePabyUB5/mXA0fGnledShENQOXXKebv5CiuFbCCxLro4ZzyZgACgdulZ/bFKRhs50SC8W7tlU/74xfBCfN6PMZol2AB2QqxIDy6s9HB3ltkNGDXEh2kog==
X-Microsoft-Antispam-PRVS: <CY4PR03MB2952A10A7AFCDDFC60240BE4E62B0@CY4PR03MB2952.namprd03.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(275809806118684);
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0;
 RULEID:(6095060)(601004)(2401047)(13017025)(13015025)(13023025)(13024025)(13018025)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6096035)(20161123559025)(20161123563025)(20161123561025)(20161123565025)(20161123556025);
 SRVR:CY4PR03MB2952; BCL:0; PCL:0; RULEID:(400006); SRVR:CY4PR03MB2952; 
X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2952;
 4:t3hKBi2hkQ/c90h/KdFv1QCvDPwJQZ8w12hAuN71zBhaFfAgA5zfodE6nMJl64+kY5cPz43I3qpEdqKSvN8wlY6ayITNiHuHtDgagknD95wqyeC/CHq8I7xUXnmlYUqxja9ezQvzbShbmrRO2kbJXZyOVHkFcVIR3yBc0hNb3sESz8SLOYq6kqvudoyO4XROHn1FgDUSW5SA5cShlJu7JLSXUoDDdAKeK7jMEqaRNfBK/rZcpMouFIk99EhACOTXfjiBE40t5NkX4yyldJdHmysOWOj+6e7qXi2+pG+Bqh+eKVLfI/X6lh/cdUieCtm8NIPSwsx+8elsDXtSuD1wi2swkgBrHKQttkJ0H/DUlGNZwgFC0xUIw2GRtjQTbyUMgErCmQLou8gM5woMSUn+GiB2+W5tgD+TWC0zGgjNm8+0hcqwh0H9k02bvAgBnP2OvnXWlbxOqQ4lj6BsmHyxpktz/cXSzoLYvIhULRMmcmIlKS5fzzl4R/vKFljL/IlUwNdt9i+lQT0+CjAlJ/q6S+kHleZ6RX0wYj88eVjV/O/ctHjber2ycMFRUXzYguHBgYp6ws6n3UQwaqakY+Wmnn+WVzJS14smLRVrKOQd48pzWImrDdSuk38Dx0I8B3c5CE5BDDH1NI3cLH29lK2VyCjC/ITvkNoTtxPQAnUOFenQWjct5aazktLh9oVgsVWylOJiTY/Ev848Qi60uDLOoCJZRoiG8gsBniNDbNuWwV0Lh0T+Qnh6OKGsutvXU7wD1vW+Dk2TA3nIqg97Zas2Eg==
X-Forefront-PRVS: 0235CBE7D0
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR03MB2952;
 23:vKGENwIMeGiYc4CRgqJ/M83rAYTBy+fJjrVYqXSCZ?=
 =?us-ascii?Q?WttrPk+ksZRXgUEePQ6aDBa9T99+xFFROMQQqyApO6coFP03HL1wQRjshccH?=
 =?us-ascii?Q?sDTYQMCQmOUV+l2El+87I2F83ihkc+66bBdwpF2EaasoeJVtRaZc8CQ04+RZ?=
 =?us-ascii?Q?5ykKPhGrPQFm4t6FJQ1Fp50WoB8TrSJ1UdIAEFXE/GkVnHO01Ye3n3pdtPda?=
 =?us-ascii?Q?JvuB0aJe9bywh31mjGEYAj2IuYzn3YGZqbYEXjK6MRRDlOKWqopUSInto4Jq?=
 =?us-ascii?Q?8qwGwafFmBEvVowlBZqCs4DleIfknNvI0+tYXoklwzkb5IKrC88Q+YwkaDUz?=
 =?us-ascii?Q?xMb4z4mLc8LH+txC76mJyGCJw4QPmHWRU90oGx7gX5R6QgAKLwh9Ooa95k4N?=
 =?us-ascii?Q?wmKaMeFtx7y5pDy/wVDGIZodcJDLjVC9oVR5p8zFv/PRCP4XhIS7OVfNRKvt?=
 =?us-ascii?Q?hO4Z8p0cyBq2M4hW5k2T5W8tXAAx9lcnUFTOD+QpkH5V5wU1M0Prp4XMBx8t?=
 =?us-ascii?Q?qAIsb03gyB1jGFoBU+apPIUbQhL0/h1dj0vQyrIV2RtRs75riCFG7pCGlUCs?=
 =?us-ascii?Q?klbU3cIGdeO+/cbbRS6I8FQRz6GQvF8xTuNbXsmgz+F+07wXL2yhmjDhKfP9?=
 =?us-ascii?Q?OSyNOxPQa/Sh4dkDCKEvrZ9jmZCqWaNUSAxrzN8w9sDgm6dK6vohGclIdJkW?=
 =?us-ascii?Q?s12kcJm0CfUsUKjIDawwOPgbxiX+KD4rwQpDCyhEkN7WORsEpfkR8Dz5N6Qa?=
 =?us-ascii?Q?ev/5XGGuF7/35UJL0LNk/30QZBE7/NlGRsEdHq1lo5u/xEDQWTsrtjzGYcZG?=
 =?us-ascii?Q?Kql4FcNAqlNQq0E5eSMSY6aKzM31/E+3/Nseit5VkGmdWvDTiPD6SOG80niW?=
 =?us-ascii?Q?wqkXOH6DJRaGkN3Vco4+UphDAN3A+ffsn9j8r+8xonKogXaX3JZUND9jGvAX?=
 =?us-ascii?Q?g+iySAy5VxBtBM/IUM/CEvNLDPjSiz+bNhBqwBL1wQoBh+7QHsxYDJj7Varm?=
 =?us-ascii?Q?cil8G7rIl0x5isHvvxIgwienyEWaZTPrf8VVP78xmr10WoHTBR3KANkvU2Qu?=
 =?us-ascii?Q?DNQ/Rcffq7HiaoxUW3XQRvzqsGacQDPR/QccWVqj8yEwf1pRhCrsKVNECYVO?=
 =?us-ascii?Q?EJksgi5kQkFC6rgFVSd2RuC1qUUk7NHs+lrnGLyUppaHd0003CYQYukreHe2?=
 =?us-ascii?Q?hdFlZTtDypQhA9Yyo5EVKNXPd+ZZVIzcWkoZutvTpN5MMdEpCJuACQIpK2IJ?=
 =?us-ascii?Q?SHHkeD39XaAFupJrzeXO0rpKy8WqZyBwvIVYeMZt7UtwjCsCIobX65R7R5Mu?=
 =?us-ascii?Q?nSbvKSuLZ2wvrmVaiDLBgZdNcM/0N1p3bItjS9E5XsY?=
X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2952;
 6:edCzEd3ljCRL+MemqGsn2t0N8Tnlr/GNwoS1D0ip7+SlRbdwx65GawaU4Dcmy84xb46H4C5Sl3H1hF1zxa48J51cP3wKQ49mmjAJkyVYEDZLO8Cl6B0Jed760BYxLyNM+5jViCVANhUhrS+3PubUh19Ke/DSKq48mPS8cO2L9gibFmdH0nR4VZVl/p98Z/z1RPFwQbN+Q3Mt/RIBao6jDruzGc9LVrwzQVTZkKdg4/lzSIqltl0XsqvXWRzZRit8s/mE27NsJyskjkoN4YV9G6ZLqp30w4XmzzvcLE1Isa0xOl87B5laUSo7bgfo+sVZmI2CjitZKDT6/oBNujOgQHI7rqrF88AptTvOMudWOW6TO6lNCLOZ2esyapdaUFoEhCK6aXGycWHkteDmh/v4qS83sRJznOO+1AVZjvc34/s=;
 5:iC6fT4fjOdEjnm0Xio2k7Iy7OP/LlSuizEpPH7mMpffP9wzssXjL81oiBov+0qjl5AFN2NCD5KjHnRppPtsmGBelkJjVbz8afM2evJ1rWvH+yGY1eswCUlw0PHE/vgzenKnN51Lkrn5MQt3/aiv8HSQbNCeHT+/pI3wGvUqYwgIQG4s1pHnqJ9tfmNnI/y5L;
 24:S9UGLOWfCLzSqJuP2qQNrJjvh8uBl6ADHfYtMDhi432axac68VvQJSh5+Pr5MUTsHS3mJAZCi8ZHj0VRZAsEbDv2eNltCo7KDsA6YRNdKbk=
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2952;
 7:QnTxqgYTTbsgEQBk4+JUYEReFm9C3b1lGyLdEnpswvlRw5BO3YwMsWulLLcHQpSrO8xu/UT8m/wNb9cCWriRtkcfv91lxJUhAWg0cV8ygyIQYjoe8qJ7tOFfA11zcO19aYcRYYCoOglO66Ir0JTwtRR/hydciW+DNC8oOcuiZOa4J3CcLZBV+LHhQTAdpaC76x4+iilZzSDsEJru8PDzt4Ytptnb6ryAS0WXwXiJWihVB4PJe+OqBY5i/3JF05clfYnRHcG0BdsBkVr43Gz5knYLuhIDBSKkrBurwZCzE2PApUUVQcogV+U9hwcIZ7mPDoUIpDHz3Fa2EvFYKK140w==
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2017 14:23:55.5872 (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: CY4PR03MB2952
Subject: [dpdk-dev] [PATCH v5 02/12] crypto/dpaa2_sec: add dpaa2 sec poll
	mode driver
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: Fri, 03 Mar 2017 14:23:59 -0000

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
---
 config/common_base                                 |   8 +
 config/defconfig_arm64-dpaa2-linuxapp-gcc          |  12 ++
 drivers/bus/Makefile                               |   3 +
 drivers/crypto/Makefile                            |   1 +
 drivers/crypto/dpaa2_sec/Makefile                  |  81 ++++++++
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c        | 193 ++++++++++++++++++
 drivers/crypto/dpaa2_sec/dpaa2_sec_logs.h          |  70 +++++++
 drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h          | 225 +++++++++++++++++++++
 .../crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map |   4 +
 drivers/pool/Makefile                              |   4 +
 mk/rte.app.mk                                      |   5 +
 11 files changed, 606 insertions(+)
 create mode 100644 drivers/crypto/dpaa2_sec/Makefile
 create mode 100644 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
 create mode 100644 drivers/crypto/dpaa2_sec/dpaa2_sec_logs.h
 create mode 100644 drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h
 create mode 100644 drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map

diff --git a/config/common_base b/config/common_base
index 3f5a356..f2114e3 100644
--- a/config/common_base
+++ b/config/common_base
@@ -465,6 +465,14 @@ CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER_DEBUG=n
 CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO=y
 
 #
+#Compile NXP DPAA2 crypto sec driver for CAAM HW
+#
+CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC=n
+CONFIG_RTE_LIBRTE_DPAA2_SEC_DEBUG_INIT=n
+CONFIG_RTE_LIBRTE_DPAA2_SEC_DEBUG_DRIVER=n
+CONFIG_RTE_LIBRTE_DPAA2_SEC_DEBUG_RX=n
+
+#
 # Compile librte_ring
 #
 CONFIG_RTE_LIBRTE_RING=y
diff --git a/config/defconfig_arm64-dpaa2-linuxapp-gcc b/config/defconfig_arm64-dpaa2-linuxapp-gcc
index 29a56c7..50ba0d6 100644
--- a/config/defconfig_arm64-dpaa2-linuxapp-gcc
+++ b/config/defconfig_arm64-dpaa2-linuxapp-gcc
@@ -65,3 +65,15 @@ CONFIG_RTE_LIBRTE_DPAA2_DEBUG_DRIVER=n
 CONFIG_RTE_LIBRTE_DPAA2_DEBUG_RX=n
 CONFIG_RTE_LIBRTE_DPAA2_DEBUG_TX=n
 CONFIG_RTE_LIBRTE_DPAA2_DEBUG_TX_FREE=n
+
+#Compile NXP DPAA2 crypto sec driver for CAAM HW
+CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC=y
+CONFIG_RTE_LIBRTE_DPAA2_SEC_DEBUG_INIT=n
+CONFIG_RTE_LIBRTE_DPAA2_SEC_DEBUG_DRIVER=n
+CONFIG_RTE_LIBRTE_DPAA2_SEC_DEBUG_RX=n
+
+#
+# Number of sessions to create in the session memory pool
+# on a single DPAA2 SEC device.
+#
+CONFIG_RTE_DPAA2_SEC_PMD_MAX_NB_SESSIONS=2048
diff --git a/drivers/bus/Makefile b/drivers/bus/Makefile
index 8f7864b..3ef7f2e 100644
--- a/drivers/bus/Makefile
+++ b/drivers/bus/Makefile
@@ -32,6 +32,9 @@
 include $(RTE_SDK)/mk/rte.vars.mk
 
 CONFIG_RTE_LIBRTE_FSLMC_BUS = $(CONFIG_RTE_LIBRTE_DPAA2_PMD)
+ifneq ($(CONFIG_RTE_LIBRTE_FSLMC_BUS),y)
+CONFIG_RTE_LIBRTE_FSLMC_BUS = $(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC)
+endif
 
 DIRS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += fslmc
 
diff --git a/drivers/crypto/Makefile b/drivers/crypto/Makefile
index a5a246b..0a3fd37 100644
--- a/drivers/crypto/Makefile
+++ b/drivers/crypto/Makefile
@@ -41,5 +41,6 @@ DIRS-$(CONFIG_RTE_LIBRTE_PMD_SNOW3G) += snow3g
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_KASUMI) += kasumi
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_ZUC) += zuc
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += null
+DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC) += dpaa2_sec
 
 include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/crypto/dpaa2_sec/Makefile b/drivers/crypto/dpaa2_sec/Makefile
new file mode 100644
index 0000000..5f75891
--- /dev/null
+++ b/drivers/crypto/dpaa2_sec/Makefile
@@ -0,0 +1,81 @@
+#   BSD LICENSE
+#
+#   Copyright (c) 2016 Freescale Semiconductor, Inc. All rights reserved.
+#   Copyright (c) 2016 NXP. All rights reserved.
+#
+#   Redistribution and use in source and binary forms, with or without
+#   modification, are permitted provided that the following conditions
+#   are met:
+#
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above copyright
+#       notice, this list of conditions and the following disclaimer in
+#       the documentation and/or other materials provided with the
+#       distribution.
+#     * Neither the name of Freescale Semiconductor, Inc 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.
+
+include $(RTE_SDK)/mk/rte.vars.mk
+
+#
+# library name
+#
+LIB = librte_pmd_dpaa2_sec.a
+
+# build flags
+ifeq ($(CONFIG_RTE_LIBRTE_DPAA2_SEC_DEBUG_INIT),y)
+CFLAGS += -O0 -g
+CFLAGS += "-Wno-error"
+else
+CFLAGS += -O3
+CFLAGS += $(WERROR_FLAGS)
+endif
+CFLAGS += "-Wno-strict-aliasing"
+CFLAGS += -D _GNU_SOURCE
+
+CFLAGS += -I$(RTE_SDK)/drivers/crypto/dpaa2_sec/
+CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/
+CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/qbman/include
+CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/mc
+CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/portal
+CFLAGS += -I$(RTE_SDK)/drivers/pool/dpaa2/
+CFLAGS += -I$(RTE_SDK)/lib/librte_eal/linuxapp/eal
+
+# versioning export map
+EXPORT_MAP := rte_pmd_dpaa2_sec_version.map
+
+# library version
+LIBABIVER := 1
+
+# external library include paths
+CFLAGS += -Iinclude
+#LDLIBS += -lcrypto
+
+# library source files
+SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC) += dpaa2_sec_dpseci.c
+
+# library dependencies
+DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC) += lib/librte_eal
+DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC) += lib/librte_mempool lib/librte_mbuf
+DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC) += lib/librte_cryptodev
+DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC) += drivers/bus/fslmc
+DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC) += drivers/pool/dpaa2
+
+LDLIBS += -lrte_bus_fslmc
+LDLIBS += -lrte_pool_dpaa2
+
+include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
new file mode 100644
index 0000000..34ca776
--- /dev/null
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -0,0 +1,193 @@
+/*-
+ *   BSD LICENSE
+ *
+ *   Copyright (c) 2016 Freescale Semiconductor, Inc. All rights reserved.
+ *   Copyright (c) 2016 NXP. All rights reserved.
+ *
+ *   Redistribution and use in source and binary forms, with or without
+ *   modification, are permitted provided that the following conditions
+ *   are met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in
+ *       the documentation and/or other materials provided with the
+ *       distribution.
+ *     * Neither the name of  Freescale Semiconductor, Inc 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.
+ */
+
+#include <time.h>
+#include <net/if.h>
+#include <rte_mbuf.h>
+#include <rte_cryptodev.h>
+#include <rte_malloc.h>
+#include <rte_memcpy.h>
+#include <rte_string_fns.h>
+#include <rte_cycles.h>
+#include <rte_kvargs.h>
+#include <rte_dev.h>
+#include <rte_cryptodev_pmd.h>
+#include <rte_common.h>
+#include <rte_fslmc.h>
+#include <fslmc_vfio.h>
+#include <dpaa2_hw_pvt.h>
+#include <dpaa2_hw_dpio.h>
+
+#include "dpaa2_sec_priv.h"
+#include "dpaa2_sec_logs.h"
+
+#define FSL_VENDOR_ID           0x1957
+#define FSL_DEVICE_ID           0x410
+#define FSL_SUBSYSTEM_SEC       1
+#define FSL_MC_DPSECI_DEVID     3
+
+static int
+dpaa2_sec_uninit(__attribute__((unused))
+		 const struct rte_cryptodev_driver *crypto_drv,
+		 struct rte_cryptodev *dev)
+{
+	if (dev->data->name == NULL)
+		return -EINVAL;
+
+	PMD_INIT_LOG(INFO, "Closing DPAA2_SEC device %s on numa socket %u\n",
+		     dev->data->name, rte_socket_id());
+
+	return 0;
+}
+
+static int
+dpaa2_sec_dev_init(struct rte_cryptodev *cryptodev)
+{
+	struct dpaa2_sec_dev_private *internals;
+	struct rte_device *dev = cryptodev->device;
+	struct rte_dpaa2_device *dpaa2_dev;
+
+	PMD_INIT_FUNC_TRACE();
+	dpaa2_dev = container_of(dev, struct rte_dpaa2_device, device);
+	if (dpaa2_dev == NULL) {
+		PMD_INIT_LOG(ERR, "dpaa2_device not found\n");
+		return -1;
+	}
+
+	cryptodev->dev_type = RTE_CRYPTODEV_DPAA2_SEC_PMD;
+
+	cryptodev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
+			RTE_CRYPTODEV_FF_HW_ACCELERATED |
+			RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING;
+
+	internals = cryptodev->data->dev_private;
+	internals->max_nb_sessions = RTE_DPAA2_SEC_PMD_MAX_NB_SESSIONS;
+
+	/*
+	 * For secondary processes, we don't initialise any further as primary
+	 * has already done this work. Only check we don't need a different
+	 * RX function
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
+		PMD_INIT_LOG(DEBUG, "Device already init by primary process");
+		return 0;
+	}
+
+	PMD_INIT_LOG(DEBUG, "driver %s: created\n", cryptodev->data->name);
+	return 0;
+}
+
+static int
+cryptodev_dpaa2_sec_probe(struct rte_dpaa2_driver *dpaa2_drv,
+			  struct rte_dpaa2_device *dpaa2_dev)
+{
+	struct rte_cryptodev *cryptodev;
+	char cryptodev_name[RTE_CRYPTODEV_NAME_MAX_LEN];
+
+	int retval;
+
+	sprintf(cryptodev_name, "dpsec-%d", dpaa2_dev->object_id);
+
+	cryptodev = rte_cryptodev_pmd_allocate(cryptodev_name, rte_socket_id());
+	if (cryptodev == NULL)
+		return -ENOMEM;
+
+	if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
+		cryptodev->data->dev_private = rte_zmalloc_socket(
+					"cryptodev private structure",
+					sizeof(struct dpaa2_sec_dev_private),
+					RTE_CACHE_LINE_SIZE,
+					rte_socket_id());
+
+		if (cryptodev->data->dev_private == NULL)
+			rte_panic("Cannot allocate memzone for private "
+					"device data");
+	}
+
+	dpaa2_dev->cryptodev = cryptodev;
+	cryptodev->device = &dpaa2_dev->device;
+	cryptodev->driver = (struct rte_cryptodev_driver *)dpaa2_drv;
+
+	/* init user callbacks */
+	TAILQ_INIT(&(cryptodev->link_intr_cbs));
+
+	/* Invoke PMD device initialization function */
+	retval = dpaa2_sec_dev_init(cryptodev);
+	if (retval == 0)
+		return 0;
+
+	if (rte_eal_process_type() == RTE_PROC_PRIMARY)
+		rte_free(cryptodev->data->dev_private);
+
+	cryptodev->attached = RTE_CRYPTODEV_DETACHED;
+
+	return -ENXIO;
+}
+
+static int
+cryptodev_dpaa2_sec_remove(struct rte_dpaa2_device *dpaa2_dev)
+{
+	struct rte_cryptodev *cryptodev;
+	int ret;
+
+	cryptodev = dpaa2_dev->cryptodev;
+	if (cryptodev == NULL)
+		return -ENODEV;
+
+	ret = dpaa2_sec_uninit(NULL, cryptodev);
+	if (ret)
+		return ret;
+
+	/* free crypto device */
+	rte_cryptodev_pmd_release_device(cryptodev);
+
+	if (rte_eal_process_type() == RTE_PROC_PRIMARY)
+		rte_free(cryptodev->data->dev_private);
+
+	cryptodev->device = NULL;
+	cryptodev->driver = NULL;
+	cryptodev->data = NULL;
+
+	return 0;
+}
+
+static struct rte_dpaa2_driver rte_dpaa2_sec_driver = {
+	.drv_type = DPAA2_MC_DPSECI_DEVID,
+	.driver = {
+		.name = "DPAA2 SEC PMD"
+	},
+	.probe = cryptodev_dpaa2_sec_probe,
+	.remove = cryptodev_dpaa2_sec_remove,
+};
+
+RTE_PMD_REGISTER_DPAA2(dpaa2_sec_pmd, rte_dpaa2_sec_driver);
diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_logs.h b/drivers/crypto/dpaa2_sec/dpaa2_sec_logs.h
new file mode 100644
index 0000000..03d4c70
--- /dev/null
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_logs.h
@@ -0,0 +1,70 @@
+/*-
+ *   BSD LICENSE
+ *
+ *   Copyright (c) 2016 Freescale Semiconductor, Inc. All rights reserved.
+ *   Copyright (c) 2016 NXP. All rights reserved.
+ *
+ *   Redistribution and use in source and binary forms, with or without
+ *   modification, are permitted provided that the following conditions
+ *   are met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in
+ *       the documentation and/or other materials provided with the
+ *       distribution.
+ *     * Neither the name of  Freescale Semiconductor, Inc 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.
+ */
+
+#ifndef _DPAA2_SEC_LOGS_H_
+#define _DPAA2_SEC_LOGS_H_
+
+#define PMD_INIT_LOG(level, fmt, args...) \
+	RTE_LOG(level, PMD, "%s(): " fmt "\n", __func__, ##args)
+
+#ifdef RTE_LIBRTE_DPAA2_SEC_DEBUG_INIT
+#define PMD_INIT_FUNC_TRACE() PMD_INIT_LOG(DEBUG, " >>")
+#else
+#define PMD_INIT_FUNC_TRACE() do { } while (0)
+#endif
+
+#ifdef RTE_LIBRTE_DPAA2_SEC_DEBUG_RX
+#define PMD_RX_LOG(level, fmt, args...) \
+	RTE_LOG(level, PMD, "%s(): " fmt "\n", __func__, ## args)
+#else
+#define PMD_RX_LOG(level, fmt, args...) do { } while (0)
+#endif
+
+#ifdef RTE_LIBRTE_DPAA2_SEC_DEBUG_TX
+#define PMD_TX_LOG(level, fmt, args...) \
+	RTE_LOG(level, PMD, "%s(): " fmt "\n", __func__, ## args)
+#else
+#define PMD_TX_LOG(level, fmt, args...) do { } while (0)
+#endif
+
+#ifdef RTE_LIBRTE_DPAA2_SEC_DEBUG_DRIVER
+#define PMD_DRV_LOG_RAW(level, fmt, args...) \
+	RTE_LOG(level, PMD, "%s(): " fmt, __func__, ## args)
+#else
+#define PMD_DRV_LOG_RAW(level, fmt, args...) do { } while (0)
+#endif
+
+#define PMD_DRV_LOG(level, fmt, args...) \
+	PMD_DRV_LOG_RAW(level, fmt "\n", ## args)
+
+#endif /* _DPAA2_SEC_LOGS_H_ */
diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h b/drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h
new file mode 100644
index 0000000..e0d6148
--- /dev/null
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h
@@ -0,0 +1,225 @@
+/*-
+ *   BSD LICENSE
+ *
+ *   Copyright (c) 2016 Freescale Semiconductor, Inc. All rights reserved.
+ *   Copyright (c) 2016 NXP. All rights reserved.
+ *
+ *   Redistribution and use in source and binary forms, with or without
+ *   modification, are permitted provided that the following conditions
+ *   are met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in
+ *       the documentation and/or other materials provided with the
+ *       distribution.
+ *     * Neither the name of  Freescale Semiconductor, Inc 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.
+ */
+
+#ifndef _RTE_DPAA2_SEC_PMD_PRIVATE_H_
+#define _RTE_DPAA2_SEC_PMD_PRIVATE_H_
+
+/** private data structure for each DPAA2_SEC device */
+struct dpaa2_sec_dev_private {
+	void *mc_portal; /**< MC Portal for configuring this device */
+	void *hw; /**< Hardware handle for this device.Used by NADK framework */
+	int32_t hw_id; /**< An unique ID of this device instance */
+	int32_t vfio_fd; /**< File descriptor received via VFIO */
+	uint16_t token; /**< Token required by DPxxx objects */
+	unsigned int max_nb_queue_pairs;
+
+	unsigned int max_nb_sessions;
+	/**< Max number of sessions supported by device */
+};
+
+struct dpaa2_sec_qp {
+	struct dpaa2_queue rx_vq;
+	struct dpaa2_queue tx_vq;
+};
+
+static const struct rte_cryptodev_capabilities dpaa2_sec_capabilities[] = {
+	{	/* MD5 HMAC */
+		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
+		{.sym = {
+			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
+			{.auth = {
+				.algo = RTE_CRYPTO_AUTH_MD5_HMAC,
+				.block_size = 64,
+				.key_size = {
+					.min = 64,
+					.max = 64,
+					.increment = 0
+				},
+				.digest_size = {
+					.min = 16,
+					.max = 16,
+					.increment = 0
+				},
+				.aad_size = { 0 }
+			}, }
+		}, }
+	},
+	{	/* SHA1 HMAC */
+		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
+		{.sym = {
+			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
+			{.auth = {
+				.algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
+				.block_size = 64,
+				.key_size = {
+					.min = 64,
+					.max = 64,
+					.increment = 0
+				},
+				.digest_size = {
+					.min = 20,
+					.max = 20,
+					.increment = 0
+				},
+				.aad_size = { 0 }
+			}, }
+		}, }
+	},
+	{	/* SHA224 HMAC */
+		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
+		{.sym = {
+			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
+			{.auth = {
+				.algo = RTE_CRYPTO_AUTH_SHA224_HMAC,
+				.block_size = 64,
+				.key_size = {
+					.min = 64,
+					.max = 64,
+					.increment = 0
+				},
+				.digest_size = {
+					.min = 28,
+					.max = 28,
+					.increment = 0
+				},
+				.aad_size = { 0 }
+			}, }
+		}, }
+	},
+	{	/* SHA256 HMAC */
+		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
+		{.sym = {
+			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
+			{.auth = {
+				.algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
+				.block_size = 64,
+				.key_size = {
+					.min = 64,
+					.max = 64,
+					.increment = 0
+				},
+				.digest_size = {
+						.min = 32,
+						.max = 32,
+						.increment = 0
+					},
+					.aad_size = { 0 }
+				}, }
+			}, }
+		},
+	{	/* SHA384 HMAC */
+		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
+		{.sym = {
+			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
+			{.auth = {
+				.algo = RTE_CRYPTO_AUTH_SHA384_HMAC,
+				.block_size = 128,
+				.key_size = {
+					.min = 128,
+					.max = 128,
+					.increment = 0
+				},
+				.digest_size = {
+					.min = 48,
+					.max = 48,
+					.increment = 0
+				},
+				.aad_size = { 0 }
+			}, }
+		}, }
+	},
+	{	/* SHA512 HMAC */
+		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
+		{.sym = {
+			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
+			{.auth = {
+				.algo = RTE_CRYPTO_AUTH_SHA512_HMAC,
+				.block_size = 128,
+				.key_size = {
+					.min = 128,
+					.max = 128,
+					.increment = 0
+				},
+				.digest_size = {
+					.min = 64,
+					.max = 64,
+					.increment = 0
+				},
+				.aad_size = { 0 }
+			}, }
+		}, }
+	},
+	{	/* AES CBC */
+		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
+		{.sym = {
+			.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
+			{.cipher = {
+				.algo = RTE_CRYPTO_CIPHER_AES_CBC,
+				.block_size = 16,
+				.key_size = {
+					.min = 16,
+					.max = 32,
+					.increment = 8
+				},
+				.iv_size = {
+					.min = 16,
+					.max = 16,
+					.increment = 0
+				}
+			}, }
+		}, }
+	},
+	{	/* 3DES CBC */
+		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
+		{.sym = {
+			.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
+			{.cipher = {
+				.algo = RTE_CRYPTO_CIPHER_3DES_CBC,
+				.block_size = 8,
+				.key_size = {
+					.min = 16,
+					.max = 24,
+					.increment = 8
+				},
+				.iv_size = {
+					.min = 8,
+					.max = 8,
+					.increment = 0
+				}
+			}, }
+		}, }
+	},
+
+	RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
+};
+#endif /* _RTE_DPAA2_SEC_PMD_PRIVATE_H_ */
diff --git a/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map b/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
new file mode 100644
index 0000000..8591cc0
--- /dev/null
+++ b/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
@@ -0,0 +1,4 @@
+DPDK_17.05 {
+
+	local: *;
+};
diff --git a/drivers/pool/Makefile b/drivers/pool/Makefile
index 3efc336..3fa060f 100644
--- a/drivers/pool/Makefile
+++ b/drivers/pool/Makefile
@@ -35,6 +35,10 @@ ifeq ($(CONFIG_RTE_LIBRTE_DPAA2_PMD),y)
 CONFIG_RTE_LIBRTE_DPAA2_POOL = $(CONFIG_RTE_LIBRTE_DPAA2_PMD)
 endif
 
+ifneq ($(CONFIG_RTE_LIBRTE_DPAA2_POOL),y)
+CONFIG_RTE_LIBRTE_DPAA2_POOL = $(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC)
+endif
+
 DIRS-$(CONFIG_RTE_LIBRTE_DPAA2_POOL) += dpaa2
 
 include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/mk/rte.app.mk b/mk/rte.app.mk
index 4f78866..acdd613 100644
--- a/mk/rte.app.mk
+++ b/mk/rte.app.mk
@@ -152,6 +152,11 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ZUC)         += -L$(LIBSSO_ZUC_PATH)/build -lsso
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO)    += -lrte_pmd_armv8
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO)    += -L$(ARMV8_CRYPTO_LIB_PATH) -larmv8_crypto
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER) += -lrte_pmd_crypto_scheduler
+ifeq ($(CONFIG_RTE_LIBRTE_FSLMC_BUS),y)
+_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC)   += -lrte_pmd_dpaa2_sec
+_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC)   += -lrte_pool_dpaa2
+_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC)   += -lrte_bus_fslmc
+endif # CONFIG_RTE_LIBRTE_FSLMC_BUS
 endif # CONFIG_RTE_LIBRTE_CRYPTODEV
 
 endif # !CONFIG_RTE_BUILD_SHARED_LIBS
-- 
2.9.3