From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753095AbdA3Mb0 (ORCPT ); Mon, 30 Jan 2017 07:31:26 -0500 Received: from mail-sn1nam02on0055.outbound.protection.outlook.com ([104.47.36.55]:17959 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752845AbdA3MbM (ORCPT ); Mon, 30 Jan 2017 07:31:12 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=George.Cherian@cavium.com; From: George Cherian To: , CC: , , , , , George Cherian Subject: [PATCH v5 0/3] Add Support for Cavium Cryptographic Acceleration Unit Date: Mon, 30 Jan 2017 12:30:41 +0000 Message-ID: <1485779444-4332-1-git-send-email-george.cherian@cavium.com> X-Mailer: git-send-email 2.1.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: BMXPR01CA0013.INDPRD01.PROD.OUTLOOK.COM (10.174.214.151) To CY1PR0701MB1709.namprd07.prod.outlook.com (10.163.21.11) X-MS-Office365-Filtering-Correlation-Id: 76abe4de-94e8-4395-a4f5-08d4490bdb6e X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:CY1PR0701MB1709; X-Microsoft-Exchange-Diagnostics: 1;CY1PR0701MB1709;3:F12h2cx50nPHL819qv9snigNO23vSiDOemRer6R5mxrTDgBN+OtXvTbK/Tbq7vL0QkNJgM80ZlTLrXA4tzmt6vFJ2ymMe71iaUaIaPZLnwQ3r1XB8Jw5pJnwQRvdRuLpir4jTqYZTp2fTnklrMIlBNJ72HRENaz3ZZpKx47hJs9zNZXIJq0E8Spvz6e3Q2on19Olo4xr2FCqCNM+cRYEEtOEc85AfrO0zlyQClHyQl09/sr4DhFcvxIan9D+crpIW+wnmmEtBJMeVIpzYc2nFg==;25:2sL8MiAS+dFZgE3oDNTbXlTkr2ojvN6X/K4EV/ShxkTcYAvwu2gPGLXsX+caeEwKFE+zbuZFA/5+p6omMFIK39ZiDWTEydZCZTZFML34s2vVZxqEFEUUuOLuT6zGiJNl6kWeaF9ZumXR8F5ZMu7sga8CXNoOAW2N9E/B7m4RIU0rvdXpG/FbG8jNp0kykG1y4ncEcUZfjHrORP8IXhGD9sWhIV2j/eL1u9V/jGCkH3dwVza6/T/KKBGDVTQIgK9Y7SSi1u9JoQzBWU6BpYA9WpB+5P78xYP+djL3KUcB8R1FoNs8CiwMeDa9rxth7kv2UtdWyDqxiRLC/9klM3XaKfQEpjrxtE6VTL0FgwE2FJbB0h4Pdj7VDIfnp9dv7JL4ARBiOcDa0j6R4pv3+nAyvVfNNQN9jiDsDVF9/9sB+fhSv/MpOarTVeMhjO2Be2sZkoOPJj0zNt1t2iB9EOLcmw== X-Microsoft-Exchange-Diagnostics: 1;CY1PR0701MB1709;31:XRSF6H0pRO3XbqdY3N2F39YLnH149Mub2V6UtnKUSNd91DlZIMVVjAYSnvnUxVptQstLAkXNmjyo11ZEP46ELOeijoOPi+m2C2iigkArwKEgtcu8jGhu+ZNEzKNNrJTy/VPIhxVxOT7EPSApmY7jcjaVif0DRaubHeiH17g6VmE6ln7QO+306qcwweIltm3c+mnV0VlE5m/ePEPLvmIAqUAsGc28mOeQ3wyYU1aJCYXalIlep6W1MvejWzGeyV8K;20:9OoLTOZnuICmqo304p4x6IYjcD/oWNCcAwdWIJyB2CB+UzPE0B/SjNlmsQg3c7LLMXfNl9ZwoUNO3QWwOW+zqPKGvaBNVeKr/e/z3tS1VjVSW+QlZZm8avhXQmyOJbqQ40pQ5M6QuHVNw94gCqE8Kn5MX3fW+RchXPtDrMINUqbxCRTU0T17G6S7a5USG6VCSu3YukxLtmHp2w7rNLNCidNr2x6Ot7vaE3ldwWQNC5W3xEf+6TaoMG4euTXoB0iOIDo8/LoiZFFQF6OTienLWNEDy84+uoXb+6Mrz+Pe8HAWqBOPj9CF6B3Kiw8zLdjm076SymlGia1cvFuuT3Xq+Xo2l8xmIl+yWzQGIYmOctWqLilKjEseDj7AntwzkQBjgDAvIosKlb43HmElgD0P8vC/EM5eCdA+1pz/lo7vDdpg/8BIGqPIP1cUAESSPFKFGTx5mRkAFJ4+868NeFrqGH2smmQM0FYs4GW+crGcPt4kmLLv0UFISzx12rnto+kH X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041248)(20161123555025)(20161123560025)(20161123562025)(20161123564025)(6072148);SRVR:CY1PR0701MB1709;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0701MB1709; X-Microsoft-Exchange-Diagnostics: 1;CY1PR0701MB1709;4:3OvurMQ3Ln9M8c56j7uxjyYQBoYHuzoxKRUVgOEVseLPs4EAUdjNcDMpAjyD/AufKu/l+/7BJV7P6zJXmVGoqHnu9RSGT5dS+x09mgROJkNFgGr2M7T9FD/LRy5TVfxRna2VZJaJnCM1T7E9/euFsnyWRLfoVLafBsEhBuYkZa3YR426QLb5ZgOJXeb5J3dtz8gGz/8usO/ASJhHwytlRTUK2aRbfN0memCHq4jva70CUpQjtB+4LN24DvANTemgSrtmfBCWjFqCsKJP2+ie2Fca0xF/FfyqbN6A2hYpOOpl/d1sFOAm05uKwzRHuwJ276wRLYXw4N5LdpK+YQmoskjTi3zZi3k5fa5FfbTnVKvCnjxhlEC1FGMa31V8rzTcSxTZhydXdg+nV2IxYLvH445aUu6j95gEI5TygEtby24/S4aaO3HCWvoHM5fdlOTUFDuRmhtumVLys2Ya2wzze12RXctaOKl5I1CRA50aL24vsgFdw2dwJLdudLmShq4SYjknlcv2qbumvPAI7KcIC0n09waNpFNAC5X62mOn/VYK535Ib9uGkDTGUosqYCm4 X-Forefront-PRVS: 0203C93D51 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(39450400003)(189002)(199003)(107886002)(66066001)(33646002)(53416004)(3846002)(6512007)(4326007)(92566002)(47776003)(2906002)(53936002)(7736002)(97736004)(189998001)(42186005)(6116002)(68736007)(86362001)(305945005)(5001770100001)(48376002)(5009440100003)(4001430100002)(50466002)(36756003)(6666003)(69596002)(31430400001)(50226002)(6506006)(101416001)(105586002)(106356001)(25786008)(38730400001)(6486002)(81156014)(54906002)(39060400001)(5660300001)(8676002)(81166006)(50986999)(5003940100001)(7099028);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR0701MB1709;H:ubuntu.caveonetworks.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY1PR0701MB1709;23:p29Kcf6vwUGWVG5S7Q4f6PXurYwDgZuGniveoEv?= =?us-ascii?Q?hb6tFVhzrmXdfBGERepl405fgNnwUnuSHTynAyiwPAkXMvDwugoNCSYmfX/a?= =?us-ascii?Q?wWcv9bxIIlZKWgWwZX/B0u44gYXnc96bizo79gHyck+n1GW5MxaOqmcU+wCP?= =?us-ascii?Q?gWdLgeQMY9JNbu+uBXTKcwghDHNYNjkyTsHVGVsAIZQ6jpQpAHJfT2EyLkGu?= =?us-ascii?Q?rQ7RmFVCzLm93RMzPW0fM8e9qW39RlL4NN0qFhyAhzfVgMshZcTosNx6pVVF?= =?us-ascii?Q?w6aSyBM5S3rZ5wIbp2IZFIdbaDunvAgO7M/yLEyVO+YvomlLSfHRkIqJAryx?= =?us-ascii?Q?yaGm4IWvryCvV7+I4UXTM7tZ8TMxm0P5P7UcY+zh2plkzOhWujs6V+a6yY6V?= =?us-ascii?Q?b+YiKrE9m5DH0C+J9MSSmKykrKu73DqtLDBkje51oYlJO9ejSKTg5jcVkyt7?= =?us-ascii?Q?F38K/33KyVzf/8BURWsTqOevn1eVbpvBb+TAMsbrzg8qypsCngomzGGb5WyR?= =?us-ascii?Q?MfFOeFSKIVtOhIldOj41WjwUb7Ct/0eTsFqFlhdQEG4e9buUIZOf4u7jkyxu?= =?us-ascii?Q?E8mKqzBy7u2bJZHkd/jUndAXceNC96GQajSEOo7LR1bAdXmnhzbQPAmNrGby?= =?us-ascii?Q?cgmJOdz71elVCB4PRTbF5vVaD3qtZmzqDgXUiPFv7tLkMjMi7bgUJSeoKLFf?= =?us-ascii?Q?Z9NtfKcpJhM1CnOefP3kqPvH+ok78NW4vW+fbehzCn2UTI4Wwv3R4Xt9ST60?= =?us-ascii?Q?1fMfyq4ExhOFo+h3rPFv1Qp1Cg8Wll18lQZYnlAeqpyYzPmytB/FNVVF7V9S?= =?us-ascii?Q?38vJIWewQUAxcy/vYrgNCcQ/GMQ4LuUKE3QOL9wxdoDHNnmVY7aqfpsotSzB?= =?us-ascii?Q?cbeWy/kZdZgP/dXBatauge+Yo4tRep4hFTAJLCiFeSNsFNyIW5TL9Pi0gGYs?= =?us-ascii?Q?GjfBXnqoWqe2sJNXihOLHiVZOA6Ifc8awbiuRAWwY9CluDOyJU8gZ9z3kjMP?= =?us-ascii?Q?Jq0e3x7qhUwuBktDNFI/ytDPHnyG7pnt8AQzaZLJtCsbZU1e3V1kkmPJPK0H?= =?us-ascii?Q?zIb5oSMU2TAYGVNyr0iSPOJhDuq3Apk1vP+O+IhdTfGj6hzF6qctos0bYi+Y?= =?us-ascii?Q?b40pafnBRhMx0NZ2Mz8829NtJxK4iGgXSj1kL42sbHKpc1oVWSDF4+yzO0F+?= =?us-ascii?Q?P0As1PtukUhnpD7A/6Bb8b5WeutnOtzbThe9+91FIjPP4EEYSD6hpg/5/GSe?= =?us-ascii?Q?1oCjFM+qkFzu53AqM+sBS7VILNEVdo636P7v8pEtc?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR0701MB1709;6:hUqE3KYCBhO2dhro1NFJ2CvbUKqxgEUnXc4qH419I5Q/rMzW0B0s4tjylXE9GXVyxuMqADPrNfNX/1P7Zuz/GT9Cr4FSm7fEOcSzdlKdqnElI7C2JLebJqxXBxuw3y4GkqcEVaVrZlKSnS3zvU0GVYFSa6XqWzyahYnO8MgxX2epe2gPZckuQY0V7I06hTUPggs0E8YX7brnP0ngF/Vc8f7W4b8MNVBNO1hBNyYEng3bK9Wh1ZA9Kx/sRTDqc8qpqphKV+lLW/zitDYiigjZD5LEfP6sJl0WBsDujLuVJKl5ZDT+wDuNvWHNGzheqFlIu9yrCHEcJ3Mf1D4j91QEPatY1RAR4E8dqu8RhusbV1Oy1S7NScZqVABEV14wbAhrXIF8xd7HoFCxfZquriNEhGUQoEaMiVUUCOPLejuKFEA=;5:Dq63yYAi1TqODofN4L4rDdy3IASy5xzo97Xq43xrvSaaQ4LIYqwU9yqnsj6honuQ+BR+tjn/3HOo7jM1kvhu0yhQcHCl49soCvrhPyFPM4ArHLTzyXY+Sba6ZG6Sk/KqDJZgeiiXbhCg8yRRIcxXwg==;24:tyqTHlRGlQm39BroCOKQR9evp+JlRGTx0bfSKXT5xxS8FlI5a3Q1YcL9S+FkyYauDqC8z8qIXBC6Konj2VTpovltnVUILDY72eJ5YltzBgI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY1PR0701MB1709;7:2fp/UcZCHfXxh3dNFdsbnYlvukQX1gkg6TZXwSntMskzMA9b3XfYHuwcEdbk0vAhISGo+31qVMmhXHFXE2P0YzIvbuqXVUz3oRfIFLZn3IBzUPCe5/RxqIsniH/yHPMH4dtLrcurok8dV55koAIhwByw5Y9UlENj7MpDJJ3OS5ngFtflDOza3VtFwLxqDf7Qpr544+qh4Ft3Ln3LBjTR5cjn4V7iwY4X4Ve6TinQETZ63b4v7Ysh0MaR2vxHPQwKMMZzn2FklwC3ho1BZ2m/5IPJjrlOJ3vscjAGEhN/emqw1DaModJqRbLQqqX4qv+MAI7QMbN0mRcX+t9JfT3LYBo/A3pTxiaAM6utqNsj/5Addk16afxGJl0zv3coJurT/gq7kq2YgYn1TbH/uQKcf5qBgZwhceEC4+K0bIBrwgplGuHS64pu1xdLznYP+QFw23OijjVTEoL8WcHD3VNgSg== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2017 12:31:00.2877 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0701MB1709 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This series adds the support for Cavium Cryptographic Accelerarion Unit (CPT) CPT is available in Cavium's Octeon-Tx SoC series. The series was tested with ecryptfs and dm-crypt for in kernel cryptographic offload operations. This driver needs a firmware to work, I will be sending the firmware to linux-firmware once the driver is accepted. Changes v4 -> v5 --Addressed Stephan Muller's comments. - Fix XTS key sizes. - Introduce a new fuction for xts setkey. - There was a key2 misalignment issue, the same is alos fixed for aes_xts. Changes v3 -> v4 --Addressed Corentin Labbe's comments - Convert all pr_x to dev_x. - Fix Typo errors. - Fix the Double unlock. - Use sg_virt. Changes v2 -> v3 -- Addressed David Daney's comments - There is not much difference in performance readq/writeq vs readq_relaxed/writeq_relaxed, so switching to readq/writeq variant. - Removed the useless bitfield definitions. - Use GENMASK,dev_to_node() instead of custome functions. - Use module_pci_driver instead of module_init/exit. Changes v1 -> v2 -- Addressed a crash issue when more gather components are passed. -- Redo the cptvf request manager. - Get rid of the un necessary buffer copies. -- s/uint*_t/u* -- Remove unwanted Macro definitions -- Remove the redundant ROUNDUP* macros and use kernel function -- Select proper config option in Kconfig file. -- Removed some of the unwanted header file inclusions -- Miscellaneous Cleanup George Cherian (3): drivers: crypto: Add Support for Octeon-tx CPT Engine drivers: crypto: Add the Virtual Function driver for CPT drivers: crypto: Enable CPT options crypto for build drivers/crypto/Kconfig | 1 + drivers/crypto/Makefile | 1 + drivers/crypto/cavium/cpt/Kconfig | 16 + drivers/crypto/cavium/cpt/Makefile | 3 + drivers/crypto/cavium/cpt/cpt_common.h | 158 +++++ drivers/crypto/cavium/cpt/cpt_hw_types.h | 658 +++++++++++++++++++ drivers/crypto/cavium/cpt/cptpf.h | 69 ++ drivers/crypto/cavium/cpt/cptpf_main.c | 708 ++++++++++++++++++++ drivers/crypto/cavium/cpt/cptpf_mbox.c | 163 +++++ drivers/crypto/cavium/cpt/cptvf.h | 135 ++++ drivers/crypto/cavium/cpt/cptvf_algs.c | 444 +++++++++++++ drivers/crypto/cavium/cpt/cptvf_algs.h | 113 ++++ drivers/crypto/cavium/cpt/cptvf_main.c | 948 +++++++++++++++++++++++++++ drivers/crypto/cavium/cpt/cptvf_mbox.c | 211 ++++++ drivers/crypto/cavium/cpt/cptvf_reqmanager.c | 593 +++++++++++++++++ drivers/crypto/cavium/cpt/request_manager.h | 147 +++++ 16 files changed, 4368 insertions(+) create mode 100644 drivers/crypto/cavium/cpt/Kconfig create mode 100644 drivers/crypto/cavium/cpt/Makefile create mode 100644 drivers/crypto/cavium/cpt/cpt_common.h create mode 100644 drivers/crypto/cavium/cpt/cpt_hw_types.h create mode 100644 drivers/crypto/cavium/cpt/cptpf.h create mode 100644 drivers/crypto/cavium/cpt/cptpf_main.c create mode 100644 drivers/crypto/cavium/cpt/cptpf_mbox.c create mode 100644 drivers/crypto/cavium/cpt/cptvf.h create mode 100644 drivers/crypto/cavium/cpt/cptvf_algs.c create mode 100644 drivers/crypto/cavium/cpt/cptvf_algs.h create mode 100644 drivers/crypto/cavium/cpt/cptvf_main.c create mode 100644 drivers/crypto/cavium/cpt/cptvf_mbox.c create mode 100644 drivers/crypto/cavium/cpt/cptvf_reqmanager.c create mode 100644 drivers/crypto/cavium/cpt/request_manager.h -- 2.1.4