From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754313AbdBGOvn (ORCPT ); Tue, 7 Feb 2017 09:51:43 -0500 Received: from mail-sn1nam01on0044.outbound.protection.outlook.com ([104.47.32.44]:49760 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753836AbdBGOvl (ORCPT ); Tue, 7 Feb 2017 09:51:41 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=George.Cherian@cavium.com; From: George Cherian To: , CC: , , , , , , George Cherian Subject: [PATCH v6 0/3] Add Support for Cavium Cryptographic Acceleration Unit Date: Tue, 7 Feb 2017 14:51:12 +0000 Message-ID: <1486479075-1813-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: MA1PR01CA0087.INDPRD01.PROD.OUTLOOK.COM (10.174.56.27) To BLUPR0701MB1699.namprd07.prod.outlook.com (10.163.85.13) X-MS-Office365-Filtering-Correlation-Id: f4452b0f-a00d-46ae-2448-08d44f68d1cb X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:BLUPR0701MB1699; X-Microsoft-Exchange-Diagnostics: 1;BLUPR0701MB1699;3:tzdo29btjKQVlQx1bi+vORnQlkC2yj7f5oTK4C5ZTXwbtpx7l6MhJQgXnHqTRKMg9xqblbqwqZwNgZgYRfUcJmQYt3TVw8KVHUM52QKUeseICR5sTT2as12PGhwJGAhTO0tZiJRYlk69PcZKKw2TfoaR+LN7/rJfiYy2qzfvwaVlAsufFBsReBryKZCwqVkVZiJdwelaybkuvSr902naCHOXvJ2sMRdoOA8C7Hgz+DXKuSn915oiYom6s4/SKFvzvGF5u1kTdGgr5JL6EEZWtg==;25:LYlGmAnBfgIs7rOxe4cfYdKBWzWVPsJniVMz8HZEHYC7aaJAsYpapqTJ9Qm3/BRnJnbuI3Wd8bj+2e6m9sbacxNbwE1zsMrf1/WdWVmahedxMnLvabBEPaQ52Dko8/WlkeGf+/ps34tTM/yXuy5TuZ8z2keN+HpNLbOy6aWeoxOE37DS8GZbNixSLu+VbHe24CCSxNXVZt/Ee1THT2rSVC2j6yvD9JhotRhgREXV1pasZka0NJvQSGRqIIrpAaX+7lQZs/jv7V8TAUh8iRG4oSEZ9nWqGhTehceNEtvp/au70cVVr/JLXTykSVwNjsH1xiN5JgazQf9nQPOqNdMr/fDrOGs57YRbJhAxrs8lI+lEvAdssrxpqcfZKUXDZPyVEPwc6NNV0XTi6n77exUui7Ug6yykO6+svy1GwBGXCbhAuG+o6lDl6LKv/coNQZQON8QnswGQ3jlYaU/HPUsGiA== X-Microsoft-Exchange-Diagnostics: 1;BLUPR0701MB1699;31:Aa1D4xEAj54V0q6JghSL/91+vtqsmqYNcdKTaHVIuR4O9FCDqhv54YdDjkiq4RJsBckTsTS/oV1i55ZaBKcxfO3tb6sPL75GEMsC7tajvxyXKY9st1OP1bh6zTP/h0QWPw+KrgWML+uUJQwf33ZxLacUt3g6etAleRqw1/tUSDVtU7UFlcmyeF/keofM0uN09ye9bW81TypZezHG5RUgr8PQxk5U5BMxpRpBcBMlxdvUqzMh4KmIj+rEVFaDwBBJ4vRImDjlVlP9MNWSRLmOmQ==;20:HC1lSp3F66+CUWVkcNLUcDSvOIjiZLomKJn75uGYjC+qO9r1uc/tqUujjtchfTtY34tT2Z3tV6ShFaoyBEdqaAWszRqEGVwlfQ5eDZMIRyJMSjh+/eIoBmRGN5Cp5puogDk0XSiTBr1Em8c8qUJ9sQQO2xQ22Nm5XaJArjTvZM7jrZdFymR5RRYWUhg1m0PC3teu7ulvYX9cm3YqKaPX47KfzHTNt/A+1y+ynbgDhZae8+XQoyGzZxr9XbQ4/27iftoscX/OtE5eKxldujDJ5Y5T4ah+cm9uxPrMtny3pbaSl/jCek/UJRmI5YV6/dCcZg0+u5V9H73nni6lHrjJz2RFGtAWTy4Yt4fKSbrteRYgueUJbxUerZCI5tPvWzefQhzzLiYwH5leihYHpaP2H1ZJEMnIi0bVGYYzKrz67KkMX3RsBUpsSBCzyMfMnSMq88o90uYWjYGCHjOg4U9642ksaxBp9SKlPGkEHRQwTWpJBUJR9xwlsKBxJfOqZvHY X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(20170203043)(8121501046)(2017020603029)(5005006)(3002001)(10201501046)(6041248)(20161123558025)(20161123562025)(20161123564025)(20161123555025)(20161123560025)(6072148);SRVR:BLUPR0701MB1699;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0701MB1699; X-Microsoft-Exchange-Diagnostics: 1;BLUPR0701MB1699;4:eF3L0+JIgOv7daqJYloWqwxjwUyhKzXrOhGXrJ++iuvPxLciewq7rKrhOjntADz8GeI+kc8yu9II7RGECRB82aX5xmkPAbrdATDOg0IM2HAiRq30/w3BJ26d081n6P1taX3biLYAFLPq6vxv8svwZ9D2ZwutHP0zBXpTEhLTEtM0jnu4H6Mkir6vxkLmK68Gke9B2i3fWFL2qdh4pEmmEaRW6Ae8gogPdk2qIBo8ZAQfETrlAA4G9GwSV6vlGzh4mc4YACwx5QCz9Yr2S9wHTcKmYs+KU+KJBGf+GNRUX2yPjXnznx4HjXjea9ETozsQQ+x6yzqi9L97gI78ARCKMgcRyh8baIdRHlQ7RI1jzxWUuWvjqKk0WBZPPsDcDGztFwwpYE0gGDY4SnvdsbDw76PFg9VtjFYvnpvihr23XhjsM1hCwfSsIkbRDrC2pZpVHXVwSRXeGF3rW/KQtfRxNXo3ycDvnlB1RRqa2VzrU75yMJWR2xbpjYbKIdsp9/xXsPlLwALBdMGRDFZGnrLfcTyPggTbC0wPAFPIaXdWz4SLKkG40Trys/54PK4W9hDz0L72elhWD42v68z4eeN+Z48/zuo9jUFFq6Im1Q2Rq06AlYFUXnG5ruHUBmM890B5gLkewjvMkzr4eJtjNaawqSldkihbSnmc7szULsmL22U= X-Forefront-PRVS: 0211965D06 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(39450400003)(199003)(189002)(66066001)(53936002)(6666003)(36756003)(97736004)(189998001)(69596002)(38730400002)(6512007)(68736007)(107886003)(54906002)(50986999)(6506006)(25786008)(47776003)(6486002)(39060400001)(86362001)(7736002)(48376002)(53416004)(6116002)(3846002)(42186005)(81166006)(8676002)(305945005)(81156014)(92566002)(31430400001)(4326007)(50466002)(2906002)(50226002)(5660300001)(5009440100003)(33646002)(101416001)(5003940100001)(106356001)(105586002)(7099028);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR0701MB1699;H:ubuntu.caveonetworks.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BLUPR0701MB1699;23:Ox3rT9+YAv7lxGfPVTu0wUW3eSJxPu1nMzoIr6Z?= =?us-ascii?Q?qvVBL/SDBDq00yPoYa37nEmk3D1v696/30HGs6o6MlVbDWgf8QUw+7HYJCzf?= =?us-ascii?Q?BKZkG8kSMh0ylwW8kHnM/751oQu2/A9ChDSGcCrTwAcrLHG7Bi6BmXB9T0lD?= =?us-ascii?Q?XrH+Bj5hTXhJ/b65H6efkovPzxvoqNUyf7yLUCuP4o/49Z32SW4267WZMvz9?= =?us-ascii?Q?AtrvZ2GCUFuDhF8b5hoK/CRwk8Y9lT8HbdX+7SzhgECU7x6jNA0wxLnVC1PK?= =?us-ascii?Q?8x6Tv/Me18sClFb3pzXuLllQFs+EYIVoZD4ouhAosW6qjf4X9kVbk0Ok+sl+?= =?us-ascii?Q?SVPtw9UpCWpszzXEj/OAMQQXa5lpf+iQCBC9z7hI4102Xf3ukXqqxUKGYXAR?= =?us-ascii?Q?eLmuORdE8I/dd0kBIF/+MuHXFEwOu9Ta2EuhYgTQuN3HIpzl/35sQ59Nj7gN?= =?us-ascii?Q?e72jfm41YBIf9dg5w9HU7ng/10v4MJ5APITG3vKWOkAwaI1JPXQbvh7a+QX5?= =?us-ascii?Q?Wsh6c6GJLsJyS+kurHPxpmbZ+13tIyJYNtTZME1JCfjt7KYNZo+eBR7B8zr7?= =?us-ascii?Q?bHPXxFn2cOGkRXu1xZLnBZ0h0/Gzgst9q+X2wPoUXbghzY6z3bX/wIhtmh3y?= =?us-ascii?Q?SJwhBmugA87uoprGHmdNW0ySeUmDd8XL6opAjF33cGNopeYXp7/5nBuths44?= =?us-ascii?Q?U2IxtuMK+v1d43GDQs3ODUiATgXT+lQri39gjjwaUCEI5qLh3tOFm0M69Yor?= =?us-ascii?Q?79PNxYv3BSkZAOYFWxf8jnvrVbN5EJH//WvvszLwBvugnrp8hSzHGpv2+FSS?= =?us-ascii?Q?fZx6QcJBbVwP7EmiQ1u4sR/uYAKtLoB/7GNBUBR3hfZbmNEU3MjH3cf8Tbz6?= =?us-ascii?Q?hNBC/IG+IbhAD9DrCokdnwAVokzrwKG7N9TN/q4oz5lnQrUlM9+xTe9taNTm?= =?us-ascii?Q?R+IyFa5/RwiE5FGW1qtLmsW0q15bXGTkv3UOihqO7oxm0hSR5m8PpCSnnKUz?= =?us-ascii?Q?sl4VUecL0vJcq1U5iRVsvute/qnwtW2QSvuZQ4qurNt7ytYZWUcsEyg9Ew0Q?= =?us-ascii?Q?ByJ9gmT1coF2Na53AD/CfXFQj2vIM4wFCvxXAo9USwQEOO0xkI3/o7qwZthu?= =?us-ascii?Q?dv70FhrMJ2ybBwRgoREkh/3G/dALXFU2pNLmOmhW3KciSsWH8yBM7714Di8r?= =?us-ascii?Q?dtpibEThs8HFsoPQ2HhFsHb2mmdbpSO5oBhiN?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR0701MB1699;6:N89ijkv09FfCvqtFruEh1tj57EB4oiRcSqgDjQtkxMu3BaUJvO0/kNQyK4oOu9/LbhPeS4i/rw9iurWtgyVUcXBxuou1Jz00fu2lWH60bXdiVDifylC4qIgD37Ta3p38wLFIHZk4u6S4MXaKD4YDl8ZGgCGBTRDY1MbnBBO/OQry/b3HYqOX9q1J3ssBzzxGIFPyS2xVw3UYrbiZgGJGpr0p4Nh/hSYel2cATGTDXJJR3NHygXwkmCWuTCG1iqNI1zahkglt4z1TIwcY3GUZG4ra9BvNjSUQBhv5XX4U8d28S+8O7rF5Awh0tvudgAnKE6gQwH2Fsvq7pDw8hmQuk+9ko63GTBfmnP1KqCoSGo4Vfbhj7kc6iWszb76PAkhiq+pR0Qwhu/6x31M+1qSGCg==;5:ZP3a8Ta7k6J7heAEYeq4ZfU2AI2nX6jXBUnvmwSuh9L0ysFRrPhnO3HJ9B4NTIXttep3tJPsr8nsKVxlUFPhPV66AZqYHPyJ1XStbJEstKDWU/LxtkqqfOh+cTfwT7pzvt+wpf+nWJWF8kaNAzGH6qlUEKOEy62S+NggEdyM/SY=;24:KrKcVju6zoyt8B9SPsDqP07wznJBVJcFieU+l/dycxjRPSEaRi+6Eybcg/+kQsD91kWAjm3vUJ+mq1ojmNICc0AxgSKomXZTUlo/XlYZDpE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BLUPR0701MB1699;7:BFMiVqJqGeRBGX9FUFcG/UquoPo2Ik/2d8DfBW5nhfh0cWRN8nIt0suFWUsfVulEE9JlhMoxJpCNpOY463sSwoZAD2KrIu8NoJSOImdw6zwtdXtfPprNR6VM9QEGFFLx0MUEC4QV/f1ojDVAN0tsoR5mZXHTjAamgATu1hcbLVaphRFRB8ANAtcH9oZQgo+qjQg+b2MPgCum1vFnV/Czpq9jLrPmRsWUsKYX3SwqAyg6Ipj1W1gEco0Pccg8aqf5fJ78llwzYwZSnAyFbq4gwDg5hpQh7hcgtGRM/+n2pic/kKMoO9ejeQhrbl7xiG4LFVr/sbZk7CAqK9kaIMa6dpTUWyCke2NZsAG5kNmlb/nqCVjdQGmy0+GmsInovT0+u6MSK8tmazC9zyWTTz2KoRFOu2J5WRmRP7Nq40N1RLyPYD1cGb+yejvH1rtNAyyKbqgwvmMarYiL4FPrdJOUczRGkQWrcrcOpRNJ9zA2nMPE5MnCP7b9XfFrXAQiV519B24TOB/PAZeYogNLmD5E4g== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Feb 2017 14:51:35.4813 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1699 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. Cahnges v5 -> v6 -- Addressed Sasha Levin's comments. - Remove open coding of hlist_for_each_entry_safe, instead use the same. - Remove the direct access of hlist members - Remove unwanted argument checks. 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 also 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 MAINTAINERS | 7 + 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 | 936 +++++++++++++++++++++++++++ drivers/crypto/cavium/cpt/cptvf_mbox.c | 211 ++++++ drivers/crypto/cavium/cpt/cptvf_reqmanager.c | 593 +++++++++++++++++ drivers/crypto/cavium/cpt/request_manager.h | 147 +++++ 17 files changed, 4363 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