From patchwork Sun Apr 23 09:26:08 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Gilad Ben-Yossef X-Patchwork-Id: 97957 Delivered-To: patch@linaro.org Received: by 10.140.109.52 with SMTP id k49csp1004808qgf; Sun, 23 Apr 2017 02:26:53 -0700 (PDT) X-Received: by 10.84.168.129 with SMTP id f1mr25737645plb.180.1492939613293; Sun, 23 Apr 2017 02:26:53 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f3si15375610pld.21.2017.04.23.02.26.52; Sun, 23 Apr 2017 02:26:53 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1044344AbdDWJ0i (ORCPT + 7 others); Sun, 23 Apr 2017 05:26:38 -0400 Received: from foss.arm.com ([217.140.101.70]:46834 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1044339AbdDWJ0h (ORCPT ); Sun, 23 Apr 2017 05:26:37 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 859B9344; Sun, 23 Apr 2017 02:26:36 -0700 (PDT) Received: from gby.kfn.arm.com (usa-sjc-mx-foss1.foss.arm.com [217.140.101.70]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id F06893F220; Sun, 23 Apr 2017 02:26:32 -0700 (PDT) From: Gilad Ben-Yossef To: Herbert Xu , "David S. Miller" , Rob Herring , Mark Rutland , Greg Kroah-Hartman , devel@driverdev.osuosl.org Cc: linux-crypto@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, gilad.benyossef@arm.com, Binoy Jayan , Ofir Drang , Stuart Yoder , Stephan Muller Subject: [PATCH v3 00/15] staging: ccree: add Arm TrustZone CryptoCell REE driver Date: Sun, 23 Apr 2017 12:26:08 +0300 Message-Id: <1492939583-25688-1-git-send-email-gilad@benyossef.com> X-Mailer: git-send-email 2.1.4 MIME-Version: 1.0 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Arm TrustZone CryptoCell 700 is a family of cryptographic hardware accelerators. It is supported by a long lived series of out of tree drivers, which I am now in the process of unifying and upstreaming. This is the first drop, supporting the new CryptoCell 712 REE. The code still needs some cleanup before maturing to a proper upstream driver, which I am in the process of doing. However, as discussion of some of the capabilities of the hardware and its application to some dm-crypt and dm-verity features recently took place I though it is better to do this in the open via the staging tree. Signed-off-by: Gilad Ben-Yossef CC: Binoy Jayan CC: Ofir Drang CC: Stuart Yoder CC: Stephan Muller Changes from v2: - Fix stupid build error on i386 due to left over Arm specific code. - Fix copyright header to match GPLv2 license, as pointed out by Greg KH. - Add proper handling of FIPS mode to TODO list, as pointed by Stephan Müller. - Remove uneeded empty file bsp.h - Fold in a bunch of fixes from kbuild robot. Changes from v1: - Broke up patch set into smaller units for mailing list review as per Greg KH's indication. - Changed DT binding compatible tag as per Mark Rutland suggestion. - Moved DT binding document inside the staging directory and added DT binding review to TODO list as per Mark Rutland's request. Gilad Ben-Yossef (10): staging: ccree: introduce CryptoCell HW driver staging: ccree: add ahash support staging: ccree: add skcipher support staging: ccree: add IV generation support staging: ccree: add AEAD support staging: ccree: add FIPS support staging: ccree: add TODO list staging: ccree: add DT bindings for Arm CryptoCell MAINTAINERS: add Gilad BY as ccree maintainer staging: ccree: remove useless NULL test of field kbuild test robot (5): staging: ccree: fix platform_no_drv_owner.cocci warnings staging: ccree: fix semicolon.cocci warnings staging: ccree: fix array_size.cocci warnings staging: ccree: fix ifnullfree.cocci warnings staging: ccree: fix ifnullfree.cocci warnings MAINTAINERS | 7 + drivers/staging/Kconfig | 2 + drivers/staging/Makefile | 2 +- .../devicetree/bindings/crypto/arm-cryptocell.txt | 27 + drivers/staging/ccree/Kconfig | 43 + drivers/staging/ccree/Makefile | 3 + drivers/staging/ccree/TODO | 30 + drivers/staging/ccree/cc_bitops.h | 62 + drivers/staging/ccree/cc_crypto_ctx.h | 299 +++ drivers/staging/ccree/cc_hal.h | 30 + drivers/staging/ccree/cc_hw_queue_defs.h | 603 +++++ drivers/staging/ccree/cc_lli_defs.h | 57 + drivers/staging/ccree/cc_pal_log.h | 188 ++ drivers/staging/ccree/cc_pal_log_plat.h | 33 + drivers/staging/ccree/cc_pal_types.h | 97 + drivers/staging/ccree/cc_pal_types_plat.h | 29 + drivers/staging/ccree/cc_regs.h | 106 + drivers/staging/ccree/dx_crys_kernel.h | 180 ++ drivers/staging/ccree/dx_env.h | 224 ++ drivers/staging/ccree/dx_host.h | 155 ++ drivers/staging/ccree/dx_reg_base_host.h | 34 + drivers/staging/ccree/dx_reg_common.h | 26 + drivers/staging/ccree/hash_defs.h | 78 + drivers/staging/ccree/hw_queue_defs_plat.h | 43 + drivers/staging/ccree/ssi_aead.c | 2832 ++++++++++++++++++++ drivers/staging/ccree/ssi_aead.h | 120 + drivers/staging/ccree/ssi_buffer_mgr.c | 1873 +++++++++++++ drivers/staging/ccree/ssi_buffer_mgr.h | 105 + drivers/staging/ccree/ssi_cipher.c | 1503 +++++++++++ drivers/staging/ccree/ssi_cipher.h | 89 + drivers/staging/ccree/ssi_config.h | 61 + drivers/staging/ccree/ssi_driver.c | 556 ++++ drivers/staging/ccree/ssi_driver.h | 228 ++ drivers/staging/ccree/ssi_fips.c | 65 + drivers/staging/ccree/ssi_fips.h | 70 + drivers/staging/ccree/ssi_fips_data.h | 315 +++ drivers/staging/ccree/ssi_fips_ext.c | 96 + drivers/staging/ccree/ssi_fips_ll.c | 1681 ++++++++++++ drivers/staging/ccree/ssi_fips_local.c | 369 +++ drivers/staging/ccree/ssi_fips_local.h | 77 + drivers/staging/ccree/ssi_hash.c | 2742 +++++++++++++++++++ drivers/staging/ccree/ssi_hash.h | 101 + drivers/staging/ccree/ssi_ivgen.c | 301 +++ drivers/staging/ccree/ssi_ivgen.h | 72 + drivers/staging/ccree/ssi_pm.c | 150 ++ drivers/staging/ccree/ssi_pm.h | 46 + drivers/staging/ccree/ssi_pm_ext.c | 60 + drivers/staging/ccree/ssi_pm_ext.h | 33 + drivers/staging/ccree/ssi_request_mgr.c | 713 +++++ drivers/staging/ccree/ssi_request_mgr.h | 60 + drivers/staging/ccree/ssi_sram_mgr.c | 138 + drivers/staging/ccree/ssi_sram_mgr.h | 80 + drivers/staging/ccree/ssi_sysfs.c | 439 +++ drivers/staging/ccree/ssi_sysfs.h | 54 + 54 files changed, 17386 insertions(+), 1 deletion(-) create mode 100644 drivers/staging/ccree/Documentation/devicetree/bindings/crypto/arm-cryptocell.txt create mode 100644 drivers/staging/ccree/Kconfig create mode 100644 drivers/staging/ccree/Makefile create mode 100644 drivers/staging/ccree/TODO create mode 100644 drivers/staging/ccree/cc_bitops.h create mode 100644 drivers/staging/ccree/cc_crypto_ctx.h create mode 100644 drivers/staging/ccree/cc_hal.h create mode 100644 drivers/staging/ccree/cc_hw_queue_defs.h create mode 100644 drivers/staging/ccree/cc_lli_defs.h create mode 100644 drivers/staging/ccree/cc_pal_log.h create mode 100644 drivers/staging/ccree/cc_pal_log_plat.h create mode 100644 drivers/staging/ccree/cc_pal_types.h create mode 100644 drivers/staging/ccree/cc_pal_types_plat.h create mode 100644 drivers/staging/ccree/cc_regs.h create mode 100644 drivers/staging/ccree/dx_crys_kernel.h create mode 100644 drivers/staging/ccree/dx_env.h create mode 100644 drivers/staging/ccree/dx_host.h create mode 100644 drivers/staging/ccree/dx_reg_base_host.h create mode 100644 drivers/staging/ccree/dx_reg_common.h create mode 100644 drivers/staging/ccree/hash_defs.h create mode 100644 drivers/staging/ccree/hw_queue_defs_plat.h create mode 100644 drivers/staging/ccree/ssi_aead.c create mode 100644 drivers/staging/ccree/ssi_aead.h create mode 100644 drivers/staging/ccree/ssi_buffer_mgr.c create mode 100644 drivers/staging/ccree/ssi_buffer_mgr.h create mode 100644 drivers/staging/ccree/ssi_cipher.c create mode 100644 drivers/staging/ccree/ssi_cipher.h create mode 100644 drivers/staging/ccree/ssi_config.h create mode 100644 drivers/staging/ccree/ssi_driver.c create mode 100644 drivers/staging/ccree/ssi_driver.h create mode 100644 drivers/staging/ccree/ssi_fips.c create mode 100644 drivers/staging/ccree/ssi_fips.h create mode 100644 drivers/staging/ccree/ssi_fips_data.h create mode 100644 drivers/staging/ccree/ssi_fips_ext.c create mode 100644 drivers/staging/ccree/ssi_fips_ll.c create mode 100644 drivers/staging/ccree/ssi_fips_local.c create mode 100644 drivers/staging/ccree/ssi_fips_local.h create mode 100644 drivers/staging/ccree/ssi_hash.c create mode 100644 drivers/staging/ccree/ssi_hash.h create mode 100644 drivers/staging/ccree/ssi_ivgen.c create mode 100644 drivers/staging/ccree/ssi_ivgen.h create mode 100644 drivers/staging/ccree/ssi_pm.c create mode 100644 drivers/staging/ccree/ssi_pm.h create mode 100644 drivers/staging/ccree/ssi_pm_ext.c create mode 100644 drivers/staging/ccree/ssi_pm_ext.h create mode 100644 drivers/staging/ccree/ssi_request_mgr.c create mode 100644 drivers/staging/ccree/ssi_request_mgr.h create mode 100644 drivers/staging/ccree/ssi_sram_mgr.c create mode 100644 drivers/staging/ccree/ssi_sram_mgr.h create mode 100644 drivers/staging/ccree/ssi_sysfs.c create mode 100644 drivers/staging/ccree/ssi_sysfs.h -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html