|
|
Subscribe / Log in / New account

Add SPAcc Crypto Driver Support

From:  Pavitrakumar M <pavitrakumarm-AT-vayavyalabs.com>
To:  herbert-AT-gondor.apana.org.au, linux-crypto-AT-vger.kernel.org
Subject:  [PATCH v7 0/6] Add SPAcc Crypto Driver Support
Date:  Mon, 29 Jul 2024 09:43:44 +0530
Message-ID:  <20240729041350.380633-1-pavitrakumarm@vayavyalabs.com>
Cc:  Ruud.Derwig-AT-synopsys.com, manjunath.hadli-AT-vayavyalabs.com, bhoomikak-AT-vayavyalabs.com, Pavitrakumar M <pavitrakumarm-AT-vayavyalabs.com>
Archive-link:  Article

Add the driver for SPAcc(Security Protocol Accelerator), which is a
crypto acceleration IP from Synopsys. The SPAcc supports many cipher,
hash, aead algorithms and various modes.The driver currently supports
below,

aead:
- ccm(sm4)
- ccm(aes)
- gcm(sm4)
- gcm(aes)
- rfc7539(chacha20,poly1305)

cipher:
- cbc(sm4)
- ecb(sm4)
- ctr(sm4)
- xts(sm4)
- cts(cbc(sm4))
- cbc(aes)
- ecb(aes)
- xts(aes)
- cts(cbc(aes))
- ctr(aes)
- chacha20
- ecb(des)
- cbc(des)
- ecb(des3_ede)
- cbc(des3_ede)

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 M (6):
  Add SPAcc Skcipher support
  Enable SPAcc AUTODETECT
  Add SPAcc ahash support
  Add SPAcc aead support
  Add SPAcc Kconfig and Makefile
  Enable Driver compilation in crypto Kconfig and Makefile

 drivers/crypto/Kconfig                     |    1 +
 drivers/crypto/Makefile                    |    1 +
 drivers/crypto/dwc-spacc/Kconfig           |   95 +
 drivers/crypto/dwc-spacc/Makefile          |   16 +
 drivers/crypto/dwc-spacc/spacc_aead.c      | 1260 ++++++++++
 drivers/crypto/dwc-spacc/spacc_ahash.c     |  914 +++++++
 drivers/crypto/dwc-spacc/spacc_core.c      | 2512 ++++++++++++++++++++
 drivers/crypto/dwc-spacc/spacc_core.h      |  826 +++++++
 drivers/crypto/dwc-spacc/spacc_device.c    |  340 +++
 drivers/crypto/dwc-spacc/spacc_device.h    |  231 ++
 drivers/crypto/dwc-spacc/spacc_hal.c       |  367 +++
 drivers/crypto/dwc-spacc/spacc_hal.h       |  114 +
 drivers/crypto/dwc-spacc/spacc_interrupt.c |  316 +++
 drivers/crypto/dwc-spacc/spacc_manager.c   |  650 +++++
 drivers/crypto/dwc-spacc/spacc_skcipher.c  |  712 ++++++
 15 files changed, 8355 insertions(+)
 create mode 100644 drivers/crypto/dwc-spacc/Kconfig
 create mode 100644 drivers/crypto/dwc-spacc/Makefile
 create mode 100755 drivers/crypto/dwc-spacc/spacc_aead.c
 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
 create mode 100644 drivers/crypto/dwc-spacc/spacc_skcipher.c


base-commit: 95c0f5c3b8bb7acdc5c4f04bc6a7d3f40d319e9e
-- 
2.25.1




Copyright © 2024, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds