.../bindings/crypto/snps,dwc-spacc.yaml | 50 + drivers/crypto/Kconfig | 1 + drivers/crypto/Makefile | 1 + drivers/crypto/dwc-spacc/Kconfig | 80 + drivers/crypto/dwc-spacc/Makefile | 8 + 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 | 283 ++ 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, 6289 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
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)
v5->v6 changes:
- Removed CRYPTO_DEV_SPACC_CIPHER and CRYPTO_DEV_SPACC_AEAD Kconfig options,
since the cipher and aead support is not part of this patchset
- Dropped spacc_skcipher.o and spacc_aead.o from Makefile to fix build errors
reported by kernel test robot
- Added Reported-by and Closes tags as suggested
v6->v7 changes:
- Fixed build error reported by Kernel test robot
- Added Reported-by and Closes tags as suggested
.../bindings/crypto/snps,dwc-spacc.yaml | 50 +
drivers/crypto/Kconfig | 1 +
drivers/crypto/Makefile | 1 +
drivers/crypto/dwc-spacc/Kconfig | 80 +
drivers/crypto/dwc-spacc/Makefile | 8 +
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 | 283 ++
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, 6289 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: c0d36727bf39bb16ef0a67ed608e279535ebf0da
--
2.25.1
Hi On 07/10/25 12:20, Pavitrakumar Managutte wrote: > 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 Use appropriate subject prefixes in commits. For crypto drivers, it is "crypto: <org/chip/soc> - <your commit header>". You can find the correct prefixes with `git log --oneline -- DIRECTORY_OR_FILE` on the directory your patch is touching. > > 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) > > v5->v6 changes: > - Removed CRYPTO_DEV_SPACC_CIPHER and CRYPTO_DEV_SPACC_AEAD Kconfig options, > since the cipher and aead support is not part of this patchset > - Dropped spacc_skcipher.o and spacc_aead.o from Makefile to fix build errors > reported by kernel test robot > - Added Reported-by and Closes tags as suggested > > v6->v7 changes: > - Fixed build error reported by Kernel test robot > - Added Reported-by and Closes tags as suggested > > .../bindings/crypto/snps,dwc-spacc.yaml | 50 + > drivers/crypto/Kconfig | 1 + > drivers/crypto/Makefile | 1 + > drivers/crypto/dwc-spacc/Kconfig | 80 + > drivers/crypto/dwc-spacc/Makefile | 8 + > 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 | 283 ++ > 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, 6289 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: c0d36727bf39bb16ef0a67ed608e279535ebf0da -- Regards T Pratham <t-pratham@ti.com>
Hi Pratham, Thanks for those inputs. I will fix that. Warm regards, PK On Fri, Oct 10, 2025 at 12:28 PM T Pratham <t-pratham@ti.com> wrote: > > Hi > On 07/10/25 12:20, Pavitrakumar Managutte wrote: > > 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 > > Use appropriate subject prefixes in commits. For crypto drivers, it is "crypto: <org/chip/soc> - <your commit header>". You can find the correct prefixes with `git log --oneline -- DIRECTORY_OR_FILE` on the directory your patch is touching. > > > > > 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) > > > > v5->v6 changes: > > - Removed CRYPTO_DEV_SPACC_CIPHER and CRYPTO_DEV_SPACC_AEAD Kconfig options, > > since the cipher and aead support is not part of this patchset > > - Dropped spacc_skcipher.o and spacc_aead.o from Makefile to fix build errors > > reported by kernel test robot > > - Added Reported-by and Closes tags as suggested > > > > v6->v7 changes: > > - Fixed build error reported by Kernel test robot > > - Added Reported-by and Closes tags as suggested > > > > .../bindings/crypto/snps,dwc-spacc.yaml | 50 + > > drivers/crypto/Kconfig | 1 + > > drivers/crypto/Makefile | 1 + > > drivers/crypto/dwc-spacc/Kconfig | 80 + > > drivers/crypto/dwc-spacc/Makefile | 8 + > > 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 | 283 ++ > > 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, 6289 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: c0d36727bf39bb16ef0a67ed608e279535ebf0da > > > -- > Regards > T Pratham <t-pratham@ti.com>
© 2016 - 2025 Red Hat, Inc.