On 01/06/18 02:04, Achim Gottinger wrote:


Am 31.05.2018 um 20:12 schrieb Achim Gottinger:


Am 31.05.2018 um 19:12 schrieb Achim Gottinger:
Hello List,

Since the commit https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=c00e5a4f09115ec976fac7dc380f576ef6a24fab strongswan is broken on WDR4900v1. An bug report can be seen here: https://bugs.openwrt.org/index.php?do=details&task_id=1262. To get strongswan working again i made an patch which reverts the changes from above commit. Now if the caam modules are loaded strongswan still fails but without the caam modules loades it works as expected. With the caam modules build in caam can not be disabled by the openwrt user.



Hi Achim,
please resend the series adding your Signed-off-by: line right here
    John

---------------------------
diff --git a/package/kernel/linux/modules/crypto.mk b/package/kernel/linux/modules/crypto.mk
index 2ea2d2c0e7..4074e2679a 100644
--- a/package/kernel/linux/modules/crypto.mk
+++ b/package/kernel/linux/modules/crypto.mk
@@ -271,6 +271,31 @@ endef

 $(eval $(call KernelPackage,crypto-hmac))

+define KernelPackage/crypto-hw-caam
+  TITLE:=Freescale CAAM driver (SEC4)
+  DEPENDS:=@TARGET_mpc85xx +kmod-crypto-aead +kmod-crypto-authenc +kmod-crypto-hash +kmod-random-core
+  KCONFIG:= \
+       CONFIG_CRYPTO_HW=y \
+       CONFIG_CRYPTO_DEV_FSL_CAAM \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_JR \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9 \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_IMX=n \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_INTC=n \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG=n
+  FILES:= \
+       $(LINUX_DIR)/drivers/crypto/caam/caam.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caamalg.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caamhash.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caam_jr.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caamrng.ko
+  AUTOLOAD:=$(call AutoLoad,09,caam caamalg caamhash caam_jr caamrng)
+  $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-hw-caam))

 define KernelPackage/crypto-hw-ccp
   TITLE:=AMD Cryptographic Coprocessor
diff --git a/target/linux/mpc85xx/config-4.9 b/target/linux/mpc85xx/config-4.9
index 68568c4a62..dc2e5a8820 100644
--- a/target/linux/mpc85xx/config-4.9
+++ b/target/linux/mpc85xx/config-4.9
@@ -47,16 +47,16 @@ CONFIG_CRYPTO_AEAD2=y
 CONFIG_CRYPTO_AKCIPHER=y
 CONFIG_CRYPTO_AKCIPHER2=y
 CONFIG_CRYPTO_AUTHENC=y
-CONFIG_CRYPTO_DEV_FSL_CAAM=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
 # CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set
 # CONFIG_CRYPTO_DEV_FSL_CAAM_IMX is not set
 # CONFIG_CRYPTO_DEV_FSL_CAAM_INTC is not set
-CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
-CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
+#CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
 CONFIG_CRYPTO_HASH=y
 CONFIG_CRYPTO_HASH2=y
 CONFIG_CRYPTO_HW=y
---------------------------

_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/listinfo/openwrt-devel

Had to modify the patch to include the caam_pkc.ko module. I also found that the caamrng.ko module does not load. In case this breaks things would it make sense to use two targets one with and one without build in caam support. I mainly use openwrt  for vpn routers so I rely on working strongswan packages.

-----------------------------------------
diff --git a/package/kernel/linux/modules/crypto.mk b/package/kernel/linux/modules/crypto.mk
index 2ea2d2c0e7..dbb0d59012 100644
--- a/package/kernel/linux/modules/crypto.mk
+++ b/package/kernel/linux/modules/crypto.mk
@@ -271,6 +271,33 @@ endef

 $(eval $(call KernelPackage,crypto-hmac))

+define KernelPackage/crypto-hw-caam
+  TITLE:=Freescale CAAM driver (SEC4)
+  DEPENDS:=@TARGET_mpc85xx +kmod-crypto-aead +kmod-crypto-authenc +kmod-crypto-hash +kmod-random-core
+  KCONFIG:= \
+       CONFIG_CRYPTO_HW=y \
+       CONFIG_CRYPTO_DEV_FSL_CAAM \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_JR \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9 \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_IMX=n \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_INTC=n \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG=n
+  FILES:= \
+       $(LINUX_DIR)/drivers/crypto/caam/caam.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caamalg.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caamhash.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caam_pkc.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caam_jr.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caamrng.ko
+  AUTOLOAD:=$(call AutoLoad,09,caam caamalg caamhash caam_jr caam_pkc caamrng)
+  $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-hw-caam))

 define KernelPackage/crypto-hw-ccp
   TITLE:=AMD Cryptographic Coprocessor
diff --git a/target/linux/mpc85xx/config-4.9 b/target/linux/mpc85xx/config-4.9
index 68568c4a62..dc2e5a8820 100644
--- a/target/linux/mpc85xx/config-4.9
+++ b/target/linux/mpc85xx/config-4.9
@@ -47,16 +47,16 @@ CONFIG_CRYPTO_AEAD2=y
 CONFIG_CRYPTO_AKCIPHER=y
 CONFIG_CRYPTO_AKCIPHER2=y
 CONFIG_CRYPTO_AUTHENC=y
-CONFIG_CRYPTO_DEV_FSL_CAAM=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
 # CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set
 # CONFIG_CRYPTO_DEV_FSL_CAAM_IMX is not set
 # CONFIG_CRYPTO_DEV_FSL_CAAM_INTC is not set
-CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
-CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
+#CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
 CONFIG_CRYPTO_HASH=y
 CONFIG_CRYPTO_HASH2=y
 CONFIG_CRYPTO_HW=y
-----------------------------------------

_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/listinfo/openwrt-devel

According to this thread https://community.nxp.com/thread/338432 there is no hw crypto extension on the  WDR4900, which explains the errors i get when i try to load the caamrng module. And why strongswan does not work.
So I assume above patch will not break anything on this router.

----------------------------------
Hi Lunmin,


according to AN4938 there exist several revisions of the P1010/P1014 SoCs. Some with security features some without. I read out the SVR on the TP-Link WDR4900 and it gives 0x80f10110 => without security.

So I think that this is the reason that job rings cannot be initialized. Can you confirm that my assumption is right?


Markus
--------------------------------


Here is the kernel log from modprobe caamrng
--------------------------------
[20600.067141] caam ffe30000.crypto: device ID = 0x0a14010000000000 (Era 3)
[20600.073879] caam ffe30000.crypto: job rings = 4, qi = 0
[20600.081731] caam_jr ffe31000.jr: failed to flush job ring 0
[20600.087372] caam_jr: probe of ffe31000.jr failed with error -5
[20600.093304] caam_jr ffe32000.jr: failed to flush job ring 1
[20600.098908] caam_jr: probe of ffe32000.jr failed with error -5
[20600.104821] caam_jr ffe33000.jr: failed to flush job ring 2
[20600.110421] caam_jr: probe of ffe33000.jr failed with error -5
[20600.116334] caam_jr ffe34000.jr: failed to flush job ring 3
[20600.121935] caam_jr: probe of ffe34000.jr failed with error -5
[20600.129209] Job Ring Device allocation for transform failed
[20600.135992] Job Ring Device allocation for transform failed
---------------------------------



_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/listinfo/openwrt-devel


_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/listinfo/openwrt-devel

Reply via email to