kernel: crypto: add SHA2(224 and 256) ARM64 CE optimized module
[openwrt/staging/nbd.git] / package / kernel / linux / modules / crypto.mk
index 04499f5f5fa5fdf37eefe1fc78cfd4562fe3c383..f7ba0a7b2943c305b48fff478df55a23f05c33aa 100644 (file)
@@ -52,6 +52,7 @@ $(eval $(call KernelPackage,crypto-aead))
 
 define KernelPackage/crypto-arc4
   TITLE:=ARC4 cipher CryptoAPI module
+  DEPENDS:=+kmod-crypto-user
   KCONFIG:= \
          CONFIG_CRYPTO_ARC4 \
          CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y
@@ -398,6 +399,19 @@ endef
 
 $(eval $(call KernelPackage,crypto-hw-hifn-795x))
 
+define KernelPackage/crypto-hw-ixp4xx
+  TITLE:=Intel IXP4xx crypto accelerator
+  DEPENDS:=@TARGET_ixp4xx +kmod-random-core +kmod-crypto-manager +kmod-crypto-authenc +kmod-crypto-des
+  KCONFIG:= \
+       CONFIG_CRYPTO_HW=y \
+       CONFIG_CRYPTO_DEV_IXP4XX
+  FILES:=$(LINUX_DIR)/drivers/crypto/ixp4xx_crypto.ko
+  AUTOLOAD:=$(call AutoProbe,ixp4xx_crypto)
+  $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-hw-ixp4xx))
+
 
 define KernelPackage/crypto-hw-padlock
   TITLE:=VIA PadLock ACE with AES/SHA hw crypto module
@@ -462,6 +476,35 @@ endef
 
 $(eval $(call KernelPackage,crypto-hw-talitos))
 
+define KernelPackage/crypto-hw-eip93
+  TITLE:=MTK EIP93 crypto module
+  DEPENDS:=@TARGET_ramips_mt7621 \
+       +kmod-crypto-authenc \
+       +kmod-crypto-des \
+       +kmod-crypto-md5 \
+       +kmod-crypto-sha1 \
+       +kmod-crypto-sha256
+  KCONFIG:= \
+       CONFIG_CRYPTO_HW=y \
+       CONFIG_CRYPTO_DEV_EIP93 \
+       CONFIG_CRYPTO_DEV_EIP93_AES=y \
+       CONFIG_CRYPTO_DEV_EIP93_DES=y \
+       CONFIG_CRYPTO_DEV_EIP93_AEAD=y \
+       CONFIG_CRYPTO_DEV_EIP93_GENERIC_SW_MAX_LEN=256 \
+       CONFIG_CRYPTO_DEV_EIP93_AES_128_SW_MAX_LEN=512
+  FILES:=$(LINUX_DIR)/drivers/crypto/mtk-eip93/crypto-hw-eip93.ko
+  AUTOLOAD:=$(call AutoLoad,09,crypto-hw-eip93)
+  $(call AddDepends/crypto)
+endef
+
+define KernelPackage/crypto-hw-eip93/description
+Kernel module to enable EIP-93 Crypto engine as found
+in the Mediatek MT7621 SoC.
+It enables DES/3DES/AES ECB/CBC/CTR and
+IPSEC offload with authenc(hmac(sha1/sha256), aes/cbc/rfc3686)
+endef
+
+$(eval $(call KernelPackage,crypto-hw-eip93))
 
 define KernelPackage/crypto-kpp
   TITLE:=Key-agreement Protocol Primitives
@@ -493,6 +536,8 @@ define KernelPackage/crypto-lib-chacha20/arm
   FILES:=$(LINUX_DIR)/arch/arm/crypto/chacha-neon.ko
 endef
 
+KernelPackage/crypto-lib-chacha20/armeb=$(KernelPackage/crypto-lib-chacha20/arm)
+
 define KernelPackage/crypto-lib-chacha20/aarch64
   KCONFIG+=CONFIG_CRYPTO_CHACHA20_NEON
   FILES+=$(LINUX_DIR)/arch/arm64/crypto/chacha-neon.ko
@@ -586,6 +631,8 @@ define KernelPackage/crypto-lib-poly1305/arm
   FILES:=$(LINUX_DIR)/arch/arm/crypto/poly1305-arm.ko
 endef
 
+KernelPackage/crypto-lib-poly1305/armeb=$(KernelPackage/crypto-lib-poly1305/arm)
+
 define KernelPackage/crypto-lib-poly1305/aarch64
   KCONFIG+=CONFIG_CRYPTO_POLY1305_NEON
   FILES:=$(LINUX_DIR)/arch/arm64/crypto/poly1305-neon.ko
@@ -678,7 +725,7 @@ $(eval $(call KernelPackage,crypto-michael-mic))
 
 define KernelPackage/crypto-misc
   TITLE:=Other CryptoAPI modules
-  DEPENDS:=+kmod-crypto-xts
+  DEPENDS:=+kmod-crypto-xts +kmod-crypto-user
   KCONFIG:= \
        CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y \
        CONFIG_CRYPTO_CAMELLIA_X86_64 \
@@ -703,7 +750,6 @@ define KernelPackage/crypto-misc
        CONFIG_CRYPTO_KHAZAD \
        CONFIG_CRYPTO_SERPENT \
        CONFIG_CRYPTO_TEA \
-       CONFIG_CRYPTO_TGR192@lt5.12 \
        CONFIG_CRYPTO_TWOFISH \
        CONFIG_CRYPTO_TWOFISH_COMMON \
        CONFIG_CRYPTO_TWOFISH_586 \
@@ -716,7 +762,6 @@ define KernelPackage/crypto-misc
        $(LINUX_DIR)/crypto/cast6_generic.ko \
        $(LINUX_DIR)/crypto/khazad.ko \
        $(LINUX_DIR)/crypto/tea.ko \
-       $(LINUX_DIR)/crypto/tgr192.ko@lt5.12 \
        $(LINUX_DIR)/crypto/twofish_common.ko \
        $(LINUX_DIR)/crypto/wp512.ko \
        $(LINUX_DIR)/crypto/twofish_generic.ko \
@@ -724,7 +769,7 @@ define KernelPackage/crypto-misc
        $(LINUX_DIR)/crypto/blowfish_generic.ko \
        $(LINUX_DIR)/crypto/serpent_generic.ko
   AUTOLOAD:=$(call AutoLoad,10,anubis camellia_generic cast_common \
-       cast5_generic cast6_generic khazad tea tgr192@lt5.12 twofish_common \
+       cast5_generic cast6_generic khazad tea twofish_common \
        wp512 blowfish_common serpent_generic)
   ifndef CONFIG_TARGET_x86
        AUTOLOAD+= $(call AutoLoad,10,twofish_generic blowfish_generic)
@@ -737,10 +782,9 @@ ifndef CONFIG_TARGET_x86_64
     FILES+= \
        $(LINUX_DIR)/arch/x86/crypto/twofish-i586.ko \
        $(LINUX_DIR)/arch/x86/crypto/serpent-sse2-i586.ko \
-       $(LINUX_DIR)/arch/x86/crypto/glue_helper.ko@lt5.12 \
        $(LINUX_DIR)/crypto/cryptd.ko \
        $(LINUX_DIR)/crypto/crypto_simd.ko
-    AUTOLOAD+= $(call AutoLoad,10,cryptd glue_helper@lt5.12 \
+    AUTOLOAD+= $(call AutoLoad,10,cryptd \
        serpent-sse2-i586 twofish-i586 blowfish_generic)
   endef
 endif
@@ -826,7 +870,7 @@ $(eval $(call KernelPackage,crypto-rmd160))
 
 define KernelPackage/crypto-rng
   TITLE:=CryptoAPI random number generation
-  DEPENDS:=+kmod-crypto-hash +kmod-crypto-hmac +kmod-crypto-sha256
+  DEPENDS:=+kmod-crypto-hash +kmod-crypto-hmac +kmod-crypto-sha512
   KCONFIG:= \
        CONFIG_CRYPTO_DRBG \
        CONFIG_CRYPTO_DRBG_HMAC=y \
@@ -864,6 +908,7 @@ define KernelPackage/crypto-sha1
        CONFIG_CRYPTO_SHA1 \
        CONFIG_CRYPTO_SHA1_ARM \
        CONFIG_CRYPTO_SHA1_ARM_NEON \
+       CONFIG_CRYPTO_SHA1_ARM64_CE \
        CONFIG_CRYPTO_SHA1_OCTEON \
        CONFIG_CRYPTO_SHA1_PPC_SPE \
        CONFIG_CRYPTO_SHA1_SSSE3
@@ -883,9 +928,15 @@ define KernelPackage/crypto-sha1/arm-neon
   AUTOLOAD+=$(call AutoLoad,09,sha1-arm-neon)
 endef
 
+define KernelPackage/crypto-sha1/aarch64-ce
+  FILES+=$(LINUX_DIR)/arch/arm64/crypto/sha1-ce.ko
+  AUTOLOAD+=$(call AutoLoad,09,sha1-ce)
+endef
+
 KernelPackage/crypto-sha1/imx=$(KernelPackage/crypto-sha1/arm-neon)
 KernelPackage/crypto-sha1/ipq40xx=$(KernelPackage/crypto-sha1/arm-neon)
 KernelPackage/crypto-sha1/mvebu/cortexa9=$(KernelPackage/crypto-sha1/arm-neon)
+KernelPackage/crypto-sha1/qualcommax=$(KernelPackage/crypto-sha1/aarch64-ce)
 
 define KernelPackage/crypto-sha1/octeon
   FILES+=$(LINUX_DIR)/arch/mips/cavium-octeon/crypto/octeon-sha1.ko
@@ -899,10 +950,12 @@ define KernelPackage/crypto-sha1/mpc85xx
   AUTOLOAD+=$(call AutoLoad,09,sha1-ppc-spe)
 endef
 
+ifndef CONFIG_TARGET_uml
 define KernelPackage/crypto-sha1/x86_64
   FILES+=$(LINUX_DIR)/arch/x86/crypto/sha1-ssse3.ko
   AUTOLOAD+=$(call AutoLoad,09,sha1-ssse3)
 endef
+endif
 
 ifdef KernelPackage/crypto-sha1/$(ARCH)
   KernelPackage/crypto-sha1/$(CRYPTO_TARGET)=\
@@ -912,6 +965,18 @@ endif
 $(eval $(call KernelPackage,crypto-sha1))
 
 
+define KernelPackage/crypto-sha3
+  TITLE:=SHA3 digest CryptoAPI module
+  DEPENDS:=+kmod-crypto-hash
+  KCONFIG:= CONFIG_CRYPTO_SHA3
+  FILES:=$(LINUX_DIR)/crypto/sha3_generic.ko
+  AUTOLOAD:=$(call AutoLoad,09,sha3_generic)
+  $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-sha3))
+
+
 define KernelPackage/crypto-sha256
   TITLE:=SHA224 SHA256 digest CryptoAPI module
   DEPENDS:=+kmod-crypto-hash
@@ -919,6 +984,8 @@ define KernelPackage/crypto-sha256
        CONFIG_CRYPTO_SHA256 \
        CONFIG_CRYPTO_SHA256_OCTEON \
        CONFIG_CRYPTO_SHA256_PPC_SPE \
+       CONFIG_CRYPTO_SHA256_ARM64 \
+       CONFIG_CRYPTO_SHA2_ARM64_CE \
        CONFIG_CRYPTO_SHA256_SSSE3
   FILES:= \
        $(LINUX_DIR)/crypto/sha256_generic.ko \
@@ -927,6 +994,17 @@ define KernelPackage/crypto-sha256
   $(call AddDepends/crypto)
 endef
 
+define KernelPackage/crypto-sha256/aarch64
+  FILES+=$(LINUX_DIR)/arch/arm64/crypto/sha256-arm64.ko
+  AUTOLOAD+=$(call AutoLoad,09,sha256-arm64)
+endef
+
+define KernelPackage/crypto-sha256/aarch64-ce
+  $(call KernelPackage/crypto-sha256/aarch64)
+  FILES+=$(LINUX_DIR)/arch/arm64/crypto/sha2-ce.ko
+  AUTOLOAD+=$(call AutoLoad,09,sha2-ce)
+endef
+
 define KernelPackage/crypto-sha256/octeon
   FILES+=$(LINUX_DIR)/arch/mips/cavium-octeon/crypto/octeon-sha256.ko
   AUTOLOAD+=$(call AutoLoad,09,octeon-sha256)
@@ -937,10 +1015,14 @@ define KernelPackage/crypto-sha256/mpc85xx
   AUTOLOAD+=$(call AutoLoad,09,sha256-ppc-spe)
 endef
 
+ifndef CONFIG_TARGET_uml
 define KernelPackage/crypto-sha256/x86_64
   FILES+=$(LINUX_DIR)/arch/x86/crypto/sha256-ssse3.ko
   AUTOLOAD+=$(call AutoLoad,09,sha256-ssse3)
 endef
+endif
+
+KernelPackage/crypto-sha256/qualcommax=$(KernelPackage/crypto-sha256/aarch64-ce)
 
 ifdef KernelPackage/crypto-sha256/$(ARCH)
   KernelPackage/crypto-sha256/$(CRYPTO_TARGET)=\
@@ -979,10 +1061,12 @@ endef
 
 KernelPackage/crypto-sha512/tegra=$(KernelPackage/crypto-sha512/arm)
 
+ifndef CONFIG_TARGET_uml
 define KernelPackage/crypto-sha512/x86_64
   FILES+=$(LINUX_DIR)/arch/x86/crypto/sha512-ssse3.ko
   AUTOLOAD+=$(call AutoLoad,09,sha512-ssse3)
 endef
+endif
 
 ifdef KernelPackage/crypto-sha512/$(ARCH)
   KernelPackage/crypto-sha512/$(CRYPTO_TARGET)=\