| From: |
| Pavitrakumar M <pavitrakumarm-AT-vayavyalabs.com> |
| To: |
| herbert-AT-gondor.apana.org.au, linux-crypto-AT-vger.kernel.org |
| Subject: |
| [PATCH v6 0/6] Add SPAcc Crypto Driver Support |
| Date: |
| Fri, 05 Jul 2024 22:42:49 +0530 |
| Message-ID: |
| <20240705171255.2618994-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 | 913 +++++++
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, 8354 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