Browse Source

apm821xx: make crypto4xx as a standalone module

Make the crypto4xx crypto accelerator support as a standalone module.
This saves 90kb on a gzipped kernel.

Signed-off-by: Christian Lamparter <[email protected]>
Christian Lamparter 2 years ago
parent
commit
55fbcad20a

+ 2 - 1
target/linux/apm821xx/Makefile

@@ -21,6 +21,7 @@ include $(INCLUDE_DIR)/target.mk
 KERNELNAME:=uImage
 
 DEFAULT_PACKAGES += \
-	kmod-leds-gpio kmod-i2c-core kmod-gpio-button-hotplug uboot-envtools
+	kmod-leds-gpio kmod-i2c-core kmod-gpio-button-hotplug uboot-envtools \
+	kmod-hw-crypto-4xx
 
 $(eval $(call BuildTarget))

+ 0 - 6
target/linux/apm821xx/config-5.15

@@ -39,15 +39,11 @@ CONFIG_CRC16=y
 # CONFIG_CRC32_SARWATE is not set
 CONFIG_CRC32_SLICEBY8=y
 CONFIG_CRYPTO_DEFLATE=y
-CONFIG_CRYPTO_DEV_PPC4XX=y
-CONFIG_CRYPTO_HW=y
 CONFIG_CRYPTO_JITTERENTROPY=y
 CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
 CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1
 CONFIG_CRYPTO_LZO=y
 # CONFIG_CRYPTO_MD5_PPC is not set
-CONFIG_CRYPTO_RNG=y
-CONFIG_CRYPTO_RNG2=y
 # CONFIG_CRYPTO_SHA1_PPC is not set
 CONFIG_DATA_SHIFT=12
 CONFIG_DMADEVICES=y
@@ -96,8 +92,6 @@ CONFIG_GPIO_GENERIC_PLATFORM=y
 CONFIG_HAS_DMA=y
 CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT_MAP=y
-CONFIG_HW_RANDOM=y
-CONFIG_HW_RANDOM_PPC4XX=y
 CONFIG_I2C=y
 CONFIG_I2C_BOARDINFO=y
 CONFIG_I2C_CHARDEV=y

+ 0 - 6
target/linux/apm821xx/config-6.1

@@ -46,8 +46,6 @@ CONFIG_CRC16=y
 # CONFIG_CRC32_SARWATE is not set
 CONFIG_CRC32_SLICEBY8=y
 CONFIG_CRYPTO_DEFLATE=y
-CONFIG_CRYPTO_DEV_PPC4XX=y
-CONFIG_CRYPTO_HW=y
 CONFIG_CRYPTO_JITTERENTROPY=y
 CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
 CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1
@@ -55,8 +53,6 @@ CONFIG_CRYPTO_LIB_SHA1=y
 CONFIG_CRYPTO_LIB_UTILS=y
 CONFIG_CRYPTO_LZO=y
 # CONFIG_CRYPTO_MD5_PPC is not set
-CONFIG_CRYPTO_RNG=y
-CONFIG_CRYPTO_RNG2=y
 # CONFIG_CRYPTO_SHA1_PPC is not set
 CONFIG_DATA_SHIFT=12
 CONFIG_DMADEVICES=y
@@ -106,8 +102,6 @@ CONFIG_GPIO_GENERIC_PLATFORM=y
 CONFIG_HAS_DMA=y
 CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT_MAP=y
-CONFIG_HW_RANDOM=y
-CONFIG_HW_RANDOM_PPC4XX=y
 CONFIG_I2C=y
 CONFIG_I2C_BOARDINFO=y
 CONFIG_I2C_CHARDEV=y

+ 20 - 0
target/linux/apm821xx/modules.mk

@@ -11,3 +11,23 @@ define KernelPackage/ata-dwc/description
 endef
 
 $(eval $(call KernelPackage,ata-dwc))
+
+define KernelPackage/hw-crypto-4xx
+  TITLE:=Driver AMCC PPC4xx crypto accelerator
+  KCONFIG:= \
+	CONFIG_CRYPTO_HW=y \
+	CONFIG_HW_RANDOM=y \
+	CONFIG_CRYPTO_DEV_PPC4XX \
+	CONFIG_HW_RANDOM_PPC4XX=y
+  DEPENDS:=+kmod-random-core +kmod-crypto-manager \
+	   +kmod-crypto-ccm +kmod-crypto-gcm \
+	   +kmod-crypto-sha1 +kmod-crypto-sha256 +kmod-crypto-sha512
+  FILES:=$(LINUX_DIR)/drivers/crypto/amcc/crypto4xx.ko
+  AUTOLOAD:=$(call AutoLoad,09,sata_dwc_460ex,1)
+endef
+
+define KernelPackage/hw-crypto-4xx/description
+  Platform support for the on-chip crypto acceleration.
+endef
+
+$(eval $(call KernelPackage,hw-crypto-4xx))