crypto: spacc - Add SPAcc Kconfig and Makefile
authorPavitrakumar M <pavitrakumarm@vayavyalabs.com>
Mon, 29 Jul 2024 04:13:49 +0000 (09:43 +0530)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sat, 10 Aug 2024 04:25:34 +0000 (12:25 +0800)
Signed-off-by: shwetar <shwetar@vayavyalabs.com>
Signed-off-by: Pavitrakumar M <pavitrakumarm@vayavyalabs.com>
Acked-by: Ruud Derwig <Ruud.Derwig@synopsys.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/dwc-spacc/Kconfig [new file with mode: 0644]
drivers/crypto/dwc-spacc/Makefile [new file with mode: 0644]

diff --git a/drivers/crypto/dwc-spacc/Kconfig b/drivers/crypto/dwc-spacc/Kconfig
new file mode 100644 (file)
index 0000000..9eb41a2
--- /dev/null
@@ -0,0 +1,95 @@
+# SPDX-License-Identifier: GPL-2.0-only
+
+config CRYPTO_DEV_SPACC
+       tristate "Support for dw_spacc Security protocol accelerators"
+       depends on HAS_DMA
+       default m
+
+       help
+         This enables support for the HASH/CRYP/AEAD hw accelerator which can be found
+         on dw_spacc IP.
+
+config CRYPTO_DEV_SPACC_CIPHER
+       bool "Enable CIPHER functionality"
+       depends on CRYPTO_DEV_SPACC
+       default y
+       select CRYPTO_SKCIPHER
+       select CRYPTO_LIB_DES
+       select CRYPTO_AES
+       select CRYPTO_CBC
+       select CRYPTO_ECB
+       select CRYPTO_CTR
+       select CRYPTO_XTS
+       select CRYPTO_CTS
+       select CRYPTO_OFB
+       select CRYPTO_CFB
+       select CRYPTO_SM4_GENERIC
+       select CRYPTO_CHACHA20
+
+       help
+         Say y to enable Cipher functionality of SPACC.
+
+config CRYPTO_DEV_SPACC_HASH
+       bool "Enable HASH functionality"
+       depends on CRYPTO_DEV_SPACC
+       default y
+       select CRYPTO_HASH
+       select CRYPTO_SHA1
+       select CRYPTO_MD5
+       select CRYPTO_SHA256
+       select CRYPTO_SHA512
+       select CRYPTO_HMAC
+       select CRYPTO_SM3
+       select CRYPTO_CMAC
+       select CRYPTO_MICHAEL_MIC
+       select CRYPTO_XCBC
+       select CRYPTO_AES
+       select CRYPTO_SM4_GENERIC
+
+       help
+         Say y to enable Hash functionality of SPACC.
+
+config CRYPTO_DEV_SPACC_AEAD
+       bool "Enable AEAD functionality"
+       depends on CRYPTO_DEV_SPACC
+       default y
+       select CRYPTO_AEAD
+       select CRYPTO_AUTHENC
+       select CRYPTO_AES
+       select CRYPTO_SM4_GENERIC
+       select CRYPTO_CHACHAPOLY1305
+       select CRYPTO_GCM
+       select CRYPTO_CCM
+
+       help
+         Say y to enable AEAD functionality of SPACC.
+
+config CRYPTO_DEV_SPACC_AUTODETECT
+       bool "Enable Autodetect functionality"
+       depends on CRYPTO_DEV_SPACC
+       default y
+       help
+         Say y to enable Autodetect functionality
+
+config CRYPTO_DEV_SPACC_DEBUG_TRACE_IO
+       bool "Enable Trace MMIO reads/writes stats"
+       depends on CRYPTO_DEV_SPACC
+       default n
+       help
+         Say y to enable Trace MMIO reads/writes stats.
+         To Debug and trace IO register read/write opration
+
+config CRYPTO_DEV_SPACC_DEBUG_TRACE_DDT
+       bool "Enable Trace DDT entries stats"
+       default n
+       depends on CRYPTO_DEV_SPACC
+       help
+         Say y to enable Enable Trace DDT entries stats.
+         To Debug and trace DDT opration
+
+config CRYPTO_DEV_SPACC_SECURE_MODE
+       bool "Enable Spacc secure mode stats"
+       default n
+       depends on CRYPTO_DEV_SPACC
+       help
+         Say y to enable Spacc secure modes stats.
diff --git a/drivers/crypto/dwc-spacc/Makefile b/drivers/crypto/dwc-spacc/Makefile
new file mode 100644 (file)
index 0000000..bf46c8e
--- /dev/null
@@ -0,0 +1,16 @@
+# SPDX-License-Identifier: GPL-2.0-only
+obj-$(CONFIG_CRYPTO_DEV_SPACC) += snps-spacc.o
+snps-spacc-objs = spacc_hal.o spacc_core.o \
+spacc_manager.o spacc_interrupt.o spacc_device.o
+
+ifeq ($(CONFIG_CRYPTO_DEV_SPACC_HASH),y)
+snps-spacc-objs += spacc_ahash.o
+endif
+
+ifeq ($(CONFIG_CRYPTO_DEV_SPACC_CIPHER),y)
+snps-spacc-objs += spacc_skcipher.o
+endif
+
+ifeq ($(CONFIG_CRYPTO_DEV_SPACC_AEAD),y)
+snps-spacc-objs += spacc_aead.o
+endif