From patchwork Fri Mar 3 19:36:33 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Akhil Goyal X-Patchwork-Id: 21300 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id AF64ED4E0; Fri, 3 Mar 2017 15:11:54 +0100 (CET) Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0065.outbound.protection.outlook.com [104.47.34.65]) by dpdk.org (Postfix) with ESMTP id 331B5FE5 for ; Fri, 3 Mar 2017 15:11:19 +0100 (CET) Received: from BN3PR03CA0096.namprd03.prod.outlook.com (10.174.66.14) by BN6PR03MB2946.namprd03.prod.outlook.com (10.175.126.12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.12; Fri, 3 Mar 2017 14:11:17 +0000 Received: from BL2FFO11FD005.protection.gbl (2a01:111:f400:7c09::171) by BN3PR03CA0096.outlook.office365.com (2603:10b6:400:4::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.933.12 via Frontend Transport; Fri, 3 Mar 2017 14:11:17 +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 BL2FFO11FD005.mail.protection.outlook.com (10.173.161.1) 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:11:16 +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 v23EB3lU010625; Fri, 3 Mar 2017 07:11:13 -0700 From: Akhil Goyal To: CC: , , , , , Akhil Goyal , Hemant Agrawal Date: Sat, 4 Mar 2017 01:06:33 +0530 Message-ID: <20170303193648.30665-4-akhil.goyal@nxp.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170303193648.30665-1-akhil.goyal@nxp.com> References: <20170120140509.4495-1-akhil.goyal@nxp.com> <20170303193648.30665-1-akhil.goyal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131330238771007278; (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)(7916002)(336005)(39450400003)(39380400002)(39850400002)(39840400002)(39860400002)(39410400002)(39400400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(9170700003)(33646002)(110136004)(53936002)(4326008)(105606002)(2351001)(38730400002)(8936002)(5660300001)(8676002)(47776003)(81166006)(50226002)(6666003)(2950100002)(6916009)(85426001)(77096006)(48376002)(50466002)(36756003)(50986999)(76176999)(106466001)(189998001)(5890100001)(305945005)(356003)(92566002)(2906002)(1076002)(5003940100001)(104016004)(8656002)(54906002)(626004)(86362001)(575784001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR03MB2946; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; A:1; MX:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD005; 1:aFkHqjxcbG+tUQBBhd/k5iqP3fMS2kE9OlVOugxvOgs7wmD/xV2tARCK315UBL3dFw+B+VcKUDCzIcpujrE8BMaJZxbuyIfDHIb2iHCEWhSr/EGM9IebL2V+GPepuulbBvO5kXZGyKqBuwjmRGLfNOPek7fZ7Ws0Ns/VNTZgpRXCtxepSC9cEJ/MhTtBy70HbE2elXZHSXv8jr1oCYHV2Id1t7kbvl8fGYqbUpzd485z/cEGvBU6Y4DfHzOpf2vENPMmkWL46Ur3x0vhg6q/bKeoivtnsVwilLWXNQ6na5xE5pFCp0oWs4SV2xV6GcP+C2yr+9CMGwHq2DeOa2OsGpTb74w67BSD3e8uhZIV6U3tfF8kvqDCatjCsoJ0ZIPak4K3eQQlid+hI0zTXGCF4kuh0pUt+sB5gya42Wmk15mOsPtEL5Rmr7l74hKo/zqc+OLqmscVM3PZspD99T3V9/5d3PUQDIpGEKyXGySW71BlUjlqw1S78HIxFeitPfv1Gqv7U12Ak64/Mh3f52dqGMddyYdCbkpCkxxPWHpHh0/OVPEvxafTxShYV3ynvXNTP1HHGwXgcwKTF3qE2T3lP9IDgbjgGgLQxleXyI4Nn8EAOEqyaU9T+3GDUBS2csfJGOQhkC4lBduBrcvDYpTH/57Lm2XWOlAK5WjWbEotORvCUeZvZ9a/dhTentbf2XwH5Ltx0O+nAvEygLHiBF6wrKuoapfhisogt2p/Nh1EZa5fqnCO88QXZNUUpxsHtL4c MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: e9172931-f05c-41d7-2dcd-08d4623f28ab X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BN6PR03MB2946; X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2946; 3:V9LJa2KCMPMG54mheukF4s2rWZbYENrkly3gsn6VmbDB8RUtfh3uQ5+O/P3U4mtu4yzusUpGXeLOyHImvt0DMiJ5OStDRFappZ/e56u0B7tZodOxgkQZXh6nKXAXbtllqymniXfIK82sgNC7PoBtkAxnvem4SVd6yER6FZGFug3ikBl9cIiiZIFo5esOJGUCNSzfeTVZ9atpMCrLIjQ5i6LnKOatISFVAzl7q0C4U3K/djXB95DxnqnfKWim5KEW1P6BTXG4FDkzahwPwfxR+R/aHE707dl426MkM2NdFnr2Gv0cp/xWp6fZ44S5QknW4Dk7TZwNw7AbBtLTMcbVfXD4yv/+x7coLzSUnTIs92DXnJ0ON6P32JKEvyE47/OI; 25:xZOLgP1wizXXQrWYodvVh38oHbztxL01U9D/PlqqLstbY+eOkoWkrIYuSNUJVGyJnFHEQC8lb/5LzzR748rtzT/xcOE429SEwq44MhZ3Ijq9wIB/690VL4wtQSJBp/OMTah6s8XY8w5J2xfI7cD/RtEbX6IEAqlKgqoBg9i/v+ZjBz7yXfF+m6QkyiA07tSTG6EZ/gx2Q1LPK4pcXaR5I8+WL9QIOj0OcV4zPGPmCgQYBO13Dz72Ouvejx0HwW7HzyDiW7Qs7q6zcGUsf1MZI5kqAMGwCjr+lMEVqDex4xN98k9VDfdwIPz3l5/Xs7PJ2rlWW4Nn/Mz616RSpiW+vaYRR2UjrlOmOrH7X+l8QeWN/ZNrlF/HzkNfimpwYc9j9PeZ7kA7mI4rSsYuual4Oq+lHrmaUAYVgRhzLuPdWKH+WFGYxjHHNw+oqfe5AwNRAtbFTI2OF0UFl04XMPqHvw== X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2946; 31:G6TssllavxzzAIQoKYSr21BwvwyFkBz4pNfVTf2llNzL+YEEt4T8Meoc6gYsoRKbYfoSpFOR7gZfIcc3nRh/02u4Lzlpbkomsl6CbpWYvGX49or96yYbYWWq/aXfS2/XP4690RZgeecc3IMneI/mmVOTZALIJbZTzzvestI0PbKTgdE2tMrP/MnJEqtpOrmgsxY3jh422g2ONFqrCVCrkWbZMYZDcPQmNHFuNEX5OnOA65D3o7t7zYpjdXJshtlLrECW9JIUnkd2buwv0w+KIw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(275809806118684); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095060)(601004)(2401047)(8121501046)(5005006)(13017025)(13015025)(13024025)(13018025)(13023025)(10201501046)(3002001)(6055026)(6096035)(20161123561025)(20161123559025)(20161123556025)(20161123565025)(20161123563025); SRVR:BN6PR03MB2946; BCL:0; PCL:0; RULEID:(400006); SRVR:BN6PR03MB2946; X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2946; 4:u8PM3rC4G4f3osjqd2qXlwbpwl4C35/EcnZCcd4+WD+1ofyrmyuId66E0yCNzOv0x4FxYiBGXrcT/c0pue3xAEfWPBVMT69g/3qci7w0sT3E60eHYthVPXCKIZAHWEuTrVCsIAWS2SDi7qMwukDmMf36SxvPns6xEI3FRY+nM12FbishnXFqlgMUmtV+QJuUbQLVZajp2rX5llp+BbMl5VH3CXumfrVHQVZvLrZ1JZIsAB7321gh2tadjYixbmX1zAKWMtF+NNR55kuzMahZjg67RJ/EOqu+wUEcl5tD640WhzUyo6sEHvnCESchYFtPmYHW5HYYLzYkXWX2MZq82eXbB5HoVE3QNqEw98y45rxnmWFSaReYLW1eMdVFxMZQ9sgzV7cpyEnNkYRf2hcW76EptWUZaCGQr1KTxc72esghJ3ePaa7cmcDHMluLF9QuIbO1s+a72KAPuvDL9io0Uv10uCRnti5IdbKhr+zOZTqBm0Bhy8E/wie4YFE8rbCOBxjEoR4XA6hasLwg9TiewlR6HvVMbp8JypVsJIYuzUznR4OBKF4hm2tXgJai1+uXRbC0azabXJK+3w6vgqlwTRvEXjDFdWxsAYaDBltgnXWD/ej6yy4o2hFGkgJM+3oWovXHXJhslgpPyABd4Zui7m3R3FEAVE/BbhhXQUGdQ+yVr0ZqcQ6HAh6C8t4DjjONitJcqFsTa7zutl/6kyCOEN2d2ooUeXBZWw2E+egM1ZQG/V9+Cg7xB4clpuAfkPtfSjRygizUKdq4zy6cM4+L8A== X-Forefront-PRVS: 0235CBE7D0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR03MB2946; 23:LzKaGdq1uvS3ombHgWqbVzBtiWcYA/AKOYVGllfhO?= ybruO3dTB8aaO8QBqBvqoWEvWTCLTc4KfDJ8Vl/9MYMvcP93gDiAZLkv9N8+dSADOJRfd3c49ZrOU9+8Y+Gh/RYz3DmNDb8NJ/gXqQhH6hMGt9UvQrB/zs0m1+kwoIXL6uBcYtuDRAQ1bdAckFPf/NG0zve9t1Do6JBQyHO0b8RppO2roqSnxE6a+xC3Leg6cZUWgKvk5JkVT18/eaOByhQRJXjUqzoWQAUKejzvEFI8Kb3xlVIqrZ9hCLH76hojV5oB4JsdqLLrgH8b1mxyRHLOATLbxWRPBF+Fml1j2rGbQKwc9FS5XbecaX/tjOkI0oamO+RWQz4pnV9NgyeNd/qRA04Qk4yaYBTrKJhun8IN2oY2VrX1iNwgZFufyV2bs+Qm/atOV3E5YWYm+p7l35PfGeztwWmocu/EE7fkueXo+Z7lQu3DCnl5KR6njuwQvkhYw/+HXGCNGbfiUMC5ZNLVK17N8EXPD9DybY+BLGeH++laZlmHYFDMNK+HySnv0FH3JrPgw4ZgPYKszh8GtuTRIRKo49heQ3Sp84wPtBzpe+CHeQdnhowCjUPRFx2F5mmpFFDalHNLVYYmKrFqbIcep++51wavv7E4HUFi38mVnVoxDj3uJFX+aFnOYLxe0RKEL1boh1NTj4i4kF8mR79XpmUP5r19iNw9PrntSiM85UCcB54CcsH1Xa8qJUVbC+IUETtOgbxupqfNvhdyxySDRGfTUnEuY0PAZGP14hno/uewU+TdRm1nVCqK7xz7fnlE3vtUapcapy8i+jBSk2cchVXK9VOqbOR4bOS7WBTYoh1HPpBtCEdS5lyPpOa1YLWH+wJcZ1TaDq0MWAgxPHXIJzSkU90gMm1MDDLLxjD1SltR0HSIvKubzJLznF+C5iyEladu6c7rjo7e+01KEXL8ViFIgGDuE4l2X57HfCDTmlvqrrdBVbtjLYOAdfVNrl1mt0s6XcralZ5QFHtI8R98TKn4hr7V4fu0hclXe/+UIMZXYOXgbNtPEmdv7IP8G+h+I3BmgLODg6OuPIk3Pw60uR1XlkkgDwWsDRzqe4LCE86v9sDcM0jVCuXj3PrPNjwQuk/ZWgYI8XgS7L21Z9pml/RSjqwXnCsMmiYNtMFE0D6XkAnvT5NGu6vbLHDnBhkXNAIhk5ywT5wZQNca55JBgi9uab1kFsPKJKJFtvr4qKj0hf5X6e9VO0eVadY8mA635hQXUZRJpqLvItCh/mOE95JqkaqgKKYM8A+BeIHjKyzuOTQQ9bjjMl+P33evp+DU1Jz6jMzl0nLxr3HuVvQ X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2946; 6:2VMAh4lKZA3VOlZcGCwU70bgcmpJ4ycXdvHq6KYU0CgPc1iyIbx/uzAXXxTkx9VLbqy9afUEDoz3Ujb3yCc/J8e6L25JvjdNdHlzx5o7FJzrZFfy5152yNEJLBBJ9bcm4Vj9bpvY8zy++lQS/b88nzyTZZxcDDdkGDZztbTtEYeQ7W+O1YqsD2OBSFtF/M7BB/lFMp6y7Gm1pr/rX6E2MmQ/cWKbbH2swESAgv9AqKeRMncW/Rz00tsAlbBGxBdmiP1qqsN0+9qKWYq5TkoQ9y1EuOerO709nPmtWEG7+nXXAnWSNfqYJ5wmWcpqePJwVxei/Q167i01RJZjxmipkRHfpWQgt02b3KZdxwnvS9JPbLopJ5j+kSGu69zD1e0i2kP+rX2qmFAquywWSCIozbNWxouIOoSu0EWEG4j/Oy4=; 5:H/4j7aIpQ88mSrq7sV475kPkKfrvHymV5//qK/FuCIvJqQeW408b61mmynCgDPNEjSMm2XOAwIkeXkgZgnUcnS9S4p9mV0LKEdNoZ2rgn9TK1Ffjw/iTAus6BTm+7jULlVpQLMZl8308B6dJwJXikHEoKLkwjsCuVohoLA1Gx/YrcEOJBZEjvM9Ww5QLWiMX; 24:Bamjmmq2IU9EYrUE+K94uj56IID3BbEv0BwUjX2eekAyfNMczGWKP9WPhZjQzER4pRmUYIxZV3aCEZPajNc0TWQ51Kz6/h3S0odrbMWVXvc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2946; 7:860ACd5fuKXYuf7aqAmzNWiyY+csdX56utcDtWSoT2L01T9enxwWJCJbzj6R1+Nq7HRvTTJ/CzFe9li8tsEDJqxp9k1E38b5YVLpsNRZOyaNUyV6OFCRELFqOda0gqkO3RIWI0mP5MFG1d7lD04lbUnKA81cfe4bVPHy4aFJHLpoX6pCahDpxdeBpvgWusNkaF2TA6T1E1ytLr62A6xzCQGgK1wLnQOcNwktFHuGtd5rel1b7IDvzBBJQj/6FJGWg4OIzSwOJ5ZnSQxER/kgaslFIYHhFv9ySSUAYIIfyAHnC54sWsir1mVu0a2J8d6XxG8ZLS8JivXzkM9OWW/pow== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2017 14:11:16.9135 (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: BN6PR03MB2946 Subject: [dpdk-dev] [PATCH v4 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 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: Akhil Goyal --- 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#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