From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <G.Singh@nxp.com>
Received: from EUR02-HE1-obe.outbound.protection.outlook.com
 (mail-eopbgr10086.outbound.protection.outlook.com [40.107.1.86])
 by dpdk.org (Postfix) with ESMTP id BCEF74C95
 for <dev@dpdk.org>; Mon, 22 Oct 2018 15:31:03 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; 
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MJ/aI45ERtNrkGqJo63KOggLw9Wn2sJ7Ie9cPDmHmV0=;
 b=VbFKhf2ZQ1bFDBPrzt3UUa3KILjzD5V+pCap+G5bHTQSXomAKEGUcyuu5Sz5o1Lyq+hCOpunfLBbQqBqZc6k+fc/Q0rplwi1cfZwnbgm36loGh0xhDGCeAVXFFSjEFi+sBqy6esKQI/FoF32UQciho0UgQ9q1Ho5+xLahACWHZg=
Received: from HE1PR04MB1530.eurprd04.prod.outlook.com (10.164.48.20) by
 HE1PR04MB1433.eurprd04.prod.outlook.com (10.163.175.155) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.1250.22; Mon, 22 Oct 2018 13:31:02 +0000
Received: from HE1PR04MB1530.eurprd04.prod.outlook.com
 ([fe80::95cd:198:d5c5:59a4]) by HE1PR04MB1530.eurprd04.prod.outlook.com
 ([fe80::95cd:198:d5c5:59a4%5]) with mapi id 15.20.1250.028; Mon, 22 Oct 2018
 13:31:02 +0000
From: Gagandeep Singh <G.Singh@nxp.com>
To: "dev@dpdk.org" <dev@dpdk.org>, Akhil Goyal <akhil.goyal@nxp.com>
CC: Gagandeep Singh <G.Singh@nxp.com>, Hemant Agrawal <hemant.agrawal@nxp.com>
Thread-Topic: [PATCH v3 01/15] crypto/caam_jr: introduce basic driver
Thread-Index: AQHUagt5nA/w/nHzgEiS/AWek28nLg==
Date: Mon, 22 Oct 2018 13:31:02 +0000
Message-ID: <20181022133021.11264-2-g.singh@nxp.com>
References: <20181012144055.9461-1-g.singh@nxp.com>
 <20181022133021.11264-1-g.singh@nxp.com>
In-Reply-To: <20181022133021.11264-1-g.singh@nxp.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-clientproxiedby: BM1PR0101CA0016.INDPRD01.PROD.OUTLOOK.COM
 (2603:1096:b00:18::26) To HE1PR04MB1530.eurprd04.prod.outlook.com
 (2a01:111:e400:59a8::20)
x-ms-exchange-messagesentrepresentingtype: 1
x-originating-ip: [14.142.187.166]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; HE1PR04MB1433;
 6:9erWrrMly0FcGwgzMRVm/zbu5xBeAaBk2zXfu+c37By7okPTTkEV08kHN29VGpJkVzW0BzlXT6pyQ1n/9+HqejPDto+B6IKOLOS0V4QGOpf72Ql2aDFcfSBXA4RU7XkY4rIurQcUU40/bW33yXLm3tsmxad5zi40/YxWPgYxkszs+nqW1pJT85UIqZcQXB8d4ctWxdsa4cbJOAHTTsdQg9fwADXv4cSukgCqSPpgetCZ1ETnmTSF6WRULkZDjuryFKvR8qIS6bJj3pw75VvZwS9QsJpOzYFNxD6TaFz9/dv8aSAyRRuMp3Zlh58Nk1oLo6aM04BztmNiVg7dZmv4cW+P6mocKLxTmGyv4LIVZDBB2Notu8HIXkwuRgDxLIfqWtTKFx3CH23f2i9EbMK3neNyjYq4GHfh8f4Nkj0tqfgJEl8ucixW6pPV4pjWadQD0ZlObaxWUg9cFkh+TTB/Sg==;
 5:6R/4mFb/DGlUR2tPJWOBRDLDZ2F5AzkXR2UkxqhZfF7qr1hppOndfjadtkZmjw90iDQq+2PfcXP1lsaNXWIrufbZNhyXuwniV+RiBW/U944+TH5uGohaP8ao1284ng/SqKBwgPl/osFVQnQKEuNDYZIF2Br6QPUlDA4rOEmltC0=;
 7:VBbMqQ4BUePJ5MQxRsfaxOkXqmY9APTOKkDXKa+CZa82uefyn+IEOHtVuzhBXazrPuNec2TNuEIrIKvbRKgZUOWaeDPhq1z5Lv1ky4yEehCmNF6Fse7gLCw6IF0zXrrvm2iEKJJfIi0s4N/IYu/HW6T8NKshvb/kC8Ay7d545Uo4lZJwCkxKxB+KarKuyjos+g4uYOkdG9aHKC17UVOE+dxwPvP9GzAa8J9rECy6pZMe9UCMnKodWHMgS4sEMHwD
x-ms-office365-filtering-correlation-id: dd44bc33-f8ac-4df2-d68c-08d638229c0c
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0;
 RULEID:(7020095)(4652040)(8989299)(5600074)(711020)(4618075)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020);
 SRVR:HE1PR04MB1433; 
x-ms-traffictypediagnostic: HE1PR04MB1433:
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=G.Singh@nxp.com; 
x-microsoft-antispam-prvs: <HE1PR04MB1433DB5A6A807D1BF56F0619E1F40@HE1PR04MB1433.eurprd04.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(192374486261705)(185117386973197);
x-ms-exchange-senderadcheck: 1
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0;
 RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(10201501046)(3231355)(944501410)(52105095)(93006095)(93001095)(6055026)(148016)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(201708071742011)(7699051)(76991095);
 SRVR:HE1PR04MB1433; BCL:0; PCL:0; RULEID:; SRVR:HE1PR04MB1433; 
x-forefront-prvs: 08331F819E
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(136003)(366004)(396003)(376002)(346002)(39860400002)(199004)(189003)(6636002)(386003)(6506007)(25786009)(4326008)(5660300001)(2900100001)(316002)(3846002)(6116002)(1076002)(53936002)(78486010)(71200400001)(71190400001)(6512007)(36756003)(575784001)(86362001)(66066001)(4744004)(186003)(97736004)(5250100002)(2501003)(68736007)(52116002)(102836004)(486006)(446003)(8676002)(81156014)(81166006)(26005)(6486002)(7736002)(305945005)(2906002)(6436002)(76176011)(99286004)(256004)(14444005)(478600001)(72206003)(55236004)(14454004)(8936002)(105586002)(106356001)(110136005)(11346002)(2616005)(476003)(54906003);
 DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR04MB1433;
 H:HE1PR04MB1530.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: nxp.com does not designate
 permitted sender hosts)
x-microsoft-antispam-message-info: mpR8xbCmuXWvqWhz9wvXR4XFHxSyFww4lgtPhMrzxz3bdqXW8tVUDw864up9UOS7DI1lI8QDcVrua4n9LzoCSUbIIwDbuqaizgqR6F10r2EdgD/2MXuiFA8cMAYFvgF7FBPF92z8rBUsk0Dc1Cltok11qEjEtEbrRC8GnA5xM7agG3hLVq6RLkCzRzzBoPMPPkxgIeXqPDuoVn4MHgo1CEbgiVMcXKlknZ76Bf9FaAsc88TS250RiMOJoVOVn4FDTiFFLNzUJXEG9FX+kyJfYPWNaZgfDHEaWa8TmwjZwEWEF3yu6IYWRGWhFXYHiG3Z4T3xP6lctLwY4RhIyceDNq56w0YCdIcP/AXsS+525Zo=
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: nxp.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dd44bc33-f8ac-4df2-d68c-08d638229c0c
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Oct 2018 13:31:02.3869 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635
X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR04MB1433
Subject: [dpdk-dev] [PATCH v3 01/15] crypto/caam_jr: introduce basic 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: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Mon, 22 Oct 2018 13:31:04 -0000

The caam_jr poll mode crypto driver is supported for
NXP SEC 4.x+ (CAAM) hardware accelerator.
This driver is by default supported on LE platforms,
if it is used on BE platforms like LS104X,
config option CONFIG_RTE_LIBRTE_PMD_CAAM_JR_BE can be
enabled.

This patch add skeleton for caam jobring driver
with probe and uintialisation functions

Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
---
 MAINTAINERS                                   |   5 +
 config/common_base                            |   6 +
 config/common_linuxapp                        |   1 +
 config/defconfig_arm64-dpaa-linuxapp-gcc      |   3 +
 drivers/crypto/Makefile                       |   1 +
 drivers/crypto/caam_jr/Makefile               |  37 +++++
 drivers/crypto/caam_jr/caam_jr.c              | 151 ++++++++++++++++++
 drivers/crypto/caam_jr/caam_jr_log.h          |  42 +++++
 drivers/crypto/caam_jr/meson.build            |  11 ++
 .../caam_jr/rte_pmd_caam_jr_version.map       |   4 +
 drivers/crypto/meson.build                    |   5 +-
 11 files changed, 264 insertions(+), 2 deletions(-)
 create mode 100644 drivers/crypto/caam_jr/Makefile
 create mode 100644 drivers/crypto/caam_jr/caam_jr.c
 create mode 100644 drivers/crypto/caam_jr/caam_jr_log.h
 create mode 100644 drivers/crypto/caam_jr/meson.build
 create mode 100644 drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map

diff --git a/MAINTAINERS b/MAINTAINERS
index 450749ab2..9de01189a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -851,6 +851,11 @@ F: drivers/crypto/null/
 F: doc/guides/cryptodevs/null.rst
 F: doc/guides/cryptodevs/features/null.ini
=20
+NXP CAAM JR
+M: Gagandeep Singh <g.singh@nxp.com>
+M: Hemant Agrawal <hemant.agrawal@nxp.com>
+F: drivers/crypto/caam_jr/
+
 NXP DPAA_SEC
 M: Akhil Goyal <akhil.goyal@nxp.com>
 M: Hemant Agrawal <hemant.agrawal@nxp.com>
diff --git a/config/common_base b/config/common_base
index 302f74a2e..9f45d9eaf 100644
--- a/config/common_base
+++ b/config/common_base
@@ -495,6 +495,12 @@ CONFIG_RTE_CRYPTO_MAX_DEVS=3D64
 CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO=3Dn
 CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO_DEBUG=3Dn
=20
+#
+# Compile NXP CAAM JR crypto Driver
+#
+CONFIG_RTE_LIBRTE_PMD_CAAM_JR=3Dn
+CONFIG_RTE_LIBRTE_PMD_CAAM_JR_BE=3Dn
+
 #
 # Compile NXP DPAA2 crypto sec driver for CAAM HW
 #
diff --git a/config/common_linuxapp b/config/common_linuxapp
index 76b884c48..3565ec8c1 100644
--- a/config/common_linuxapp
+++ b/config/common_linuxapp
@@ -40,6 +40,7 @@ CONFIG_RTE_LIBRTE_DPAA_MEMPOOL=3Dy
 CONFIG_RTE_LIBRTE_DPAA_PMD=3Dy
 CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV=3Dy
 CONFIG_RTE_LIBRTE_PMD_DPAA_SEC=3Dy
+CONFIG_RTE_LIBRTE_PMD_CAAM_JR=3Dy
=20
 # NXP FSLMC BUS and DPAA2 drivers
 CONFIG_RTE_LIBRTE_FSLMC_BUS=3Dy
diff --git a/config/defconfig_arm64-dpaa-linuxapp-gcc b/config/defconfig_ar=
m64-dpaa-linuxapp-gcc
index c47aec0a6..544b6770d 100644
--- a/config/defconfig_arm64-dpaa-linuxapp-gcc
+++ b/config/defconfig_arm64-dpaa-linuxapp-gcc
@@ -21,3 +21,6 @@ CONFIG_RTE_PKTMBUF_HEADROOM=3D128
 # NXP DPAA Bus
 CONFIG_RTE_LIBRTE_DPAA_DEBUG_DRIVER=3Dn
 CONFIG_RTE_LIBRTE_DPAA_HWDEBUG=3Dn
+
+# NXP CAAM_JR driver
+CONFIG_RTE_LIBRTE_PMD_CAAM_JR_BE=3Dy
diff --git a/drivers/crypto/Makefile b/drivers/crypto/Makefile
index c083e64ff..c25a19fb0 100644
--- a/drivers/crypto/Makefile
+++ b/drivers/crypto/Makefile
@@ -6,6 +6,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_GCM) +=3D aesni_gcm
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) +=3D aesni_mb
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO) +=3D armv8
+DIRS-$(CONFIG_RTE_LIBRTE_PMD_CAAM_JR) +=3D caam_jr
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_CCP) +=3D ccp
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO) +=3D octeontx
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_OPENSSL) +=3D openssl
diff --git a/drivers/crypto/caam_jr/Makefile b/drivers/crypto/caam_jr/Makef=
ile
new file mode 100644
index 000000000..b1f3ecee7
--- /dev/null
+++ b/drivers/crypto/caam_jr/Makefile
@@ -0,0 +1,37 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright 2017 NXP
+
+include $(RTE_SDK)/mk/rte.vars.mk
+
+#
+# library name
+#
+LIB =3D librte_pmd_caam_jr.a
+
+# build flags
+CFLAGS +=3D -DALLOW_EXPERIMENTAL_API
+
+CFLAGS +=3D -D _GNU_SOURCE
+
+CFLAGS +=3D -O3
+CFLAGS +=3D $(WERROR_FLAGS)
+
+CFLAGS +=3D -I$(RTE_SDK)/drivers/crypto/caam_jr
+CFLAGS +=3D -I$(RTE_SDK)/lib/librte_eal/common/include
+CFLAGS +=3D -I$(RTE_SDK)/lib/librte_eal/linuxapp/eal
+
+# versioning export map
+EXPORT_MAP :=3D rte_pmd_caam_jr_version.map
+
+# library version
+LIBABIVER :=3D 1
+
+# library source files
+SRCS-$(CONFIG_RTE_LIBRTE_PMD_CAAM_JR) +=3D caam_jr.c
+# library dependencies
+
+LDLIBS +=3D -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
+LDLIBS +=3D -lrte_cryptodev
+LDLIBS +=3D -lrte_bus_vdev
+
+include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/caam_jr/caam_jr.c b/drivers/crypto/caam_jr/caam=
_jr.c
new file mode 100644
index 000000000..27331194a
--- /dev/null
+++ b/drivers/crypto/caam_jr/caam_jr.c
@@ -0,0 +1,151 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright 2017-2018 NXP
+ */
+
+#include <fcntl.h>
+#include <unistd.h>
+#include <sched.h>
+#include <net/if.h>
+
+#include <rte_byteorder.h>
+#include <rte_common.h>
+#include <rte_cryptodev_pmd.h>
+#include <rte_crypto.h>
+#include <rte_cryptodev.h>
+#include <rte_bus_vdev.h>
+#include <rte_malloc.h>
+#include <rte_security_driver.h>
+#include <rte_hexdump.h>
+
+#include <caam_jr_log.h>
+
+#define CRYPTODEV_NAME_CAAM_JR_PMD	crypto_caam_jr
+static uint8_t cryptodev_driver_id;
+int caam_jr_logtype;
+
+/*
+ * @brief Release the resources used by the SEC user space driver.
+ *
+ * Reset and release SEC's job rings indicated by the User Application at
+ * init_job_ring() and free any memory allocated internally.
+ * Call once during application tear down.
+ *
+ * @note In case there are any descriptors in-flight (descriptors received=
 by
+ * SEC driver for processing and for which no response was yet provided to=
 UA),
+ * the descriptors are discarded without any notifications to User Applica=
tion.
+ *
+ * @retval ::0			is returned for a successful execution
+ * @retval ::-1		is returned if SEC driver release is in progress
+ */
+static int
+caam_jr_dev_uninit(struct rte_cryptodev *dev)
+{
+	if (dev =3D=3D NULL)
+		return -ENODEV;
+
+	CAAM_JR_INFO("Closing crypto device %s", dev->data->name);
+
+	return 0;
+}
+
+static int
+caam_jr_dev_init(const char *name,
+		 struct rte_vdev_device *vdev,
+		 struct rte_cryptodev_pmd_init_params *init_params)
+{
+	struct rte_cryptodev *dev;
+
+	PMD_INIT_FUNC_TRACE();
+
+	dev =3D rte_cryptodev_pmd_create(name, &vdev->device, init_params);
+	if (dev =3D=3D NULL) {
+		CAAM_JR_ERR("failed to create cryptodev vdev");
+		goto cleanup;
+	}
+
+	dev->driver_id =3D cryptodev_driver_id;
+	dev->dev_ops =3D NULL;
+
+	/* 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() !=3D RTE_PROC_PRIMARY) {
+		CAAM_JR_WARN("Device already init by primary process");
+		return 0;
+	}
+
+	RTE_LOG(INFO, PMD, "%s cryptodev init\n", dev->data->name);
+
+	return 0;
+
+cleanup:
+	CAAM_JR_ERR("driver %s: cryptodev_caam_jr_create failed",
+			init_params->name);
+
+	return -ENXIO;
+}
+
+/** Initialise CAAM JR crypto device */
+static int
+cryptodev_caam_jr_probe(struct rte_vdev_device *vdev)
+{
+	struct rte_cryptodev_pmd_init_params init_params =3D {
+		"",
+		128,
+		rte_socket_id(),
+		RTE_CRYPTODEV_PMD_DEFAULT_MAX_NB_QUEUE_PAIRS
+	};
+	const char *name;
+	const char *input_args;
+
+	name =3D rte_vdev_device_name(vdev);
+	if (name =3D=3D NULL)
+		return -EINVAL;
+
+	input_args =3D rte_vdev_device_args(vdev);
+	rte_cryptodev_pmd_parse_input_args(&init_params, input_args);
+
+	return caam_jr_dev_init(name, vdev, &init_params);
+}
+
+/** Uninitialise CAAM JR crypto device */
+static int
+cryptodev_caam_jr_remove(struct rte_vdev_device *vdev)
+{
+	struct rte_cryptodev *cryptodev;
+	const char *name;
+
+	name =3D rte_vdev_device_name(vdev);
+	if (name =3D=3D NULL)
+		return -EINVAL;
+
+	cryptodev =3D rte_cryptodev_pmd_get_named_dev(name);
+	if (cryptodev =3D=3D NULL)
+		return -ENODEV;
+
+	caam_jr_dev_uninit(cryptodev);
+
+	return rte_cryptodev_pmd_destroy(cryptodev);
+}
+
+static struct rte_vdev_driver cryptodev_caam_jr_drv =3D {
+	.probe =3D cryptodev_caam_jr_probe,
+	.remove =3D cryptodev_caam_jr_remove
+};
+
+static struct cryptodev_driver caam_jr_crypto_drv;
+
+RTE_PMD_REGISTER_VDEV(CRYPTODEV_NAME_CAAM_JR_PMD, cryptodev_caam_jr_drv);
+RTE_PMD_REGISTER_PARAM_STRING(CRYPTODEV_NAME_CAAM_JR_PMD,
+	"max_nb_queue_pairs=3D<int>"
+	"socket_id=3D<int>");
+RTE_PMD_REGISTER_CRYPTO_DRIVER(caam_jr_crypto_drv, cryptodev_caam_jr_drv.d=
river,
+		cryptodev_driver_id);
+
+RTE_INIT(caam_jr_init_log)
+{
+	caam_jr_logtype =3D rte_log_register("pmd.crypto.caam");
+	if (caam_jr_logtype >=3D 0)
+		rte_log_set_level(caam_jr_logtype, RTE_LOG_NOTICE);
+}
diff --git a/drivers/crypto/caam_jr/caam_jr_log.h b/drivers/crypto/caam_jr/=
caam_jr_log.h
new file mode 100644
index 000000000..106ff07a7
--- /dev/null
+++ b/drivers/crypto/caam_jr/caam_jr_log.h
@@ -0,0 +1,42 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright 2017-2018 NXP
+ */
+
+#ifndef _CAAM_JR_LOG_H_
+#define _CAAM_JR_LOG_H_
+
+#include <rte_log.h>
+
+extern int caam_jr_logtype;
+
+#define CAAM_JR_LOG(level, fmt, args...) \
+	rte_log(RTE_LOG_ ## level, caam_jr_logtype, "caam_jr: " \
+		fmt "\n", ##args)
+
+#define CAAM_JR_DEBUG(fmt, args...) \
+	rte_log(RTE_LOG_DEBUG, caam_jr_logtype, "caam_jr: %s(): " \
+		fmt "\n", __func__, ##args)
+
+#define PMD_INIT_FUNC_TRACE() CAAM_JR_DEBUG(" >>")
+
+#define CAAM_JR_INFO(fmt, args...) \
+	CAAM_JR_LOG(INFO, fmt, ## args)
+#define CAAM_JR_ERR(fmt, args...) \
+	CAAM_JR_LOG(ERR, fmt, ## args)
+#define CAAM_JR_WARN(fmt, args...) \
+	CAAM_JR_LOG(WARNING, fmt, ## args)
+
+/* DP Logs, toggled out at compile time if level lower than current level =
*/
+#define CAAM_JR_DP_LOG(level, fmt, args...) \
+	RTE_LOG_DP(level, PMD, fmt "\n", ## args)
+
+#define CAAM_JR_DP_DEBUG(fmt, args...) \
+	CAAM_JR_DP_LOG(DEBUG, fmt, ## args)
+#define CAAM_JR_DP_INFO(fmt, args...) \
+	CAAM_JR_DP_LOG(INFO, fmt, ## args)
+#define CAAM_JR_DP_WARN(fmt, args...) \
+	CAAM_JR_DP_LOG(WARNING, fmt, ## args)
+#define CAAM_JR_DP_ERR(fmt, args...) \
+	CAAM_JR_DP_LOG(ERR, fmt, ## args)
+
+#endif /* _CAAM_JR_LOG_H_ */
diff --git a/drivers/crypto/caam_jr/meson.build b/drivers/crypto/caam_jr/me=
son.build
new file mode 100644
index 000000000..3edd0a212
--- /dev/null
+++ b/drivers/crypto/caam_jr/meson.build
@@ -0,0 +1,11 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright 2018 NXP
+
+if host_machine.system() !=3D 'linux'
+        build =3D false
+endif
+
+deps +=3D ['bus_vdev', 'bus_dpaa', 'security']
+sources =3D files('caam_jr.c')
+
+allow_experimental_apis =3D true
diff --git a/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map b/drivers/c=
rypto/caam_jr/rte_pmd_caam_jr_version.map
new file mode 100644
index 000000000..521e51f41
--- /dev/null
+++ b/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map
@@ -0,0 +1,4 @@
+DPDK_18.11 {
+
+	local: *;
+};
diff --git a/drivers/crypto/meson.build b/drivers/crypto/meson.build
index e9c491af6..bf1bd9286 100644
--- a/drivers/crypto/meson.build
+++ b/drivers/crypto/meson.build
@@ -1,8 +1,9 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
=20
-drivers =3D ['aesni_gcm', 'aesni_mb', 'ccp', 'dpaa_sec', 'dpaa2_sec', 'kas=
umi', 'mvsam',
-	'null', 'octeontx', 'openssl', 'qat', 'scheduler', 'virtio', 'zuc']
+drivers =3D ['aesni_gcm', 'aesni_mb', 'caam_jr', 'ccp', 'dpaa_sec', 'dpaa2=
_sec',
+	'kasumi', 'mvsam', 'null', 'octeontx', 'openssl', 'qat', 'scheduler',
+	'virtio', 'zuc']
=20
 std_deps =3D ['cryptodev'] # cryptodev pulls in all other needed deps
 config_flag_fmt =3D 'RTE_LIBRTE_@0@_PMD'
--=20
2.17.1