[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250926141904.38919-1-pavitrakumarm@vayavyalabs.com>
Date: Fri, 26 Sep 2025 19:49:00 +0530
From: Pavitrakumar Managutte <pavitrakumarm@...avyalabs.com>
To: linux-crypto@...r.kernel.org,
linux-kernel@...r.kernel.org,
devicetree@...r.kernel.org,
herbert@...dor.apana.org.au,
robh@...nel.org
Cc: krzk+dt@...nel.org,
conor+dt@...nel.org,
Ruud.Derwig@...opsys.com,
manjunath.hadli@...avyalabs.com,
adityak@...avyalabs.com,
Pavitrakumar Managutte <pavitrakumarm@...avyalabs.com>
Subject: [PATCH v5 0/4] Add SPAcc Crypto Driver
Add the driver for SPAcc(Security Protocol Accelerator), which is a
crypto acceleration IP from Synopsys. The SPAcc supports multiple ciphers,
hashes and AEAD algorithms with various modes. The driver currently supports
below
hash:
- cmac(aes)
- xcbc(aes)
- cmac(sm4)
- xcbc(sm4)
- hmac(md5)
- md5
- hmac(sha1)
- sha1
- sha224
- sha256
- sha384
- sha512
- hmac(sha224)
- hmac(sha256)
- hmac(sha384)
- hmac(sha512)
- sha3-224
- sha3-256
- sha3-384
- sha3-512
- hmac(sm3)
- sm3
- michael_mic
Pavitrakumar Managutte (4):
dt-bindings: crypto: Document support for SPAcc
Add SPAcc ahash support
Add SPAcc AUTODETECT Support
Add SPAcc Kconfig and Makefile
changelog:
v1->v2 changes:
- Added local_bh_disable() and local_bh_enable() for the below calls.
a. for ciphers skcipher_request_complete()
b. for aead aead_request_complete()
c. for hash ahash_request_complete()
- dt-bindings updates
a. removed snps,vspacc-priority and made it into config option
b. renamed snps,spacc-wdtimer to snps,spacc-internal-counter
c. Added description to all properties
- Updated corresponding dt-binding changes to code
v2->v3 changes:
- cra_init and cra_exit replaced with init_tfm and exit_tfm for hashes.
- removed mutex_lock/unlock for spacc_skcipher_fallback call
- dt-bindings updates
a. updated SOC related information
b. renamed compatible string as per SOC
- Updated corresponding dt-binding changes to code
v3->v4 changes:
- removed snps,vspacc-id from the dt-bindings
- removed mutex_lock from ciphers
- replaced magic numbers with macros
- removed sw_fb variable from struct mode_tab and associated code from the
hashes
- polling code is replaced by wait_event_interruptible
v4->v5 changes:
- Updated to register with the crypto-engine
- Used semaphore to manage SPAcc device hardware context pool
- This patchset supports Hashes only
- Dropping the support for Ciphers and AEADs in this patchset
- Added Reviewed-by tag on the Device tree patch since it was reviewed on
v4 patch by Krzysztof Kozlowski and Rob Herring (Arm)
.../bindings/crypto/snps,dwc-spacc.yaml | 50 +
drivers/crypto/Kconfig | 1 +
drivers/crypto/Makefile | 1 +
drivers/crypto/dwc-spacc/Kconfig | 114 +
drivers/crypto/dwc-spacc/Makefile | 16 +
drivers/crypto/dwc-spacc/spacc_ahash.c | 980 +++++++
drivers/crypto/dwc-spacc/spacc_core.c | 2394 +++++++++++++++++
drivers/crypto/dwc-spacc/spacc_core.h | 830 ++++++
drivers/crypto/dwc-spacc/spacc_device.c | 301 +++
drivers/crypto/dwc-spacc/spacc_device.h | 233 ++
drivers/crypto/dwc-spacc/spacc_hal.c | 374 +++
drivers/crypto/dwc-spacc/spacc_hal.h | 114 +
drivers/crypto/dwc-spacc/spacc_interrupt.c | 328 +++
drivers/crypto/dwc-spacc/spacc_manager.c | 613 +++++
14 files changed, 6349 insertions(+)
create mode 100644 Documentation/devicetree/bindings/crypto/snps,dwc-spacc.yaml
create mode 100644 drivers/crypto/dwc-spacc/Kconfig
create mode 100644 drivers/crypto/dwc-spacc/Makefile
create mode 100644 drivers/crypto/dwc-spacc/spacc_ahash.c
create mode 100644 drivers/crypto/dwc-spacc/spacc_core.c
create mode 100644 drivers/crypto/dwc-spacc/spacc_core.h
create mode 100644 drivers/crypto/dwc-spacc/spacc_device.c
create mode 100644 drivers/crypto/dwc-spacc/spacc_device.h
create mode 100644 drivers/crypto/dwc-spacc/spacc_hal.c
create mode 100644 drivers/crypto/dwc-spacc/spacc_hal.h
create mode 100644 drivers/crypto/dwc-spacc/spacc_interrupt.c
create mode 100644 drivers/crypto/dwc-spacc/spacc_manager.c
base-commit: b73f28d2f847c24ca5d858a79fd37055036b0a67
--
2.25.1
Powered by blists - more mailing lists