From 9a0a5ce89bd3a6154102c93574e4304a5ab1386c Mon Sep 17 00:00:00 2001 From: Aleksander Jan Bajkowski Date: Fri, 5 Dec 2025 22:11:05 +0100 Subject: [PATCH] kernel: 6.18: backport eip93 driver fixes Backport minor fixes for the eip93 driver from upstream. Signed-off-by: Aleksander Jan Bajkowski Signed-off-by: Chukun Pan Link: https://github.com/openwrt/openwrt/pull/21078 Signed-off-by: Robert Marko --- ...secure-eip93-fix-register-definition.patch | 29 ++++++++++ ...cure-eip93-register-hash-before-auth.patch | 58 +++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 target/linux/generic/backport-6.18/827-v7.0-crypto-inside-secure-eip93-fix-register-definition.patch create mode 100644 target/linux/generic/backport-6.18/828-v7.0-crypto-inside-secure-eip93-register-hash-before-auth.patch diff --git a/target/linux/generic/backport-6.18/827-v7.0-crypto-inside-secure-eip93-fix-register-definition.patch b/target/linux/generic/backport-6.18/827-v7.0-crypto-inside-secure-eip93-fix-register-definition.patch new file mode 100644 index 0000000000..10cb15a030 --- /dev/null +++ b/target/linux/generic/backport-6.18/827-v7.0-crypto-inside-secure-eip93-fix-register-definition.patch @@ -0,0 +1,29 @@ +From b7abbc8c7acaeb60c114b038f1fa91bbedb3d16a Mon Sep 17 00:00:00 2001 +From: Aleksander Jan Bajkowski +Date: Sun, 8 Feb 2026 11:35:53 +0100 +Subject: [PATCH] crypto: inside-secure/eip93 - fix register definition + +Checked the register definitions with the documentation[1]. Turns out +that the PKTE_INBUF_CNT register has a bad offset. It's used in Direct +Host Mode (DHM). The driver uses Autonomous Ring Mode (ARM), so it +causes no harm. + +1. ADSP-SC58x/ADSP-2158x SHARC+ Processor Hardware Reference +Fixes: 9739f5f93b78 ("crypto: eip93 - Add Inside Secure SafeXcel EIP-93 crypto engine support") +Signed-off-by: Aleksander Jan Bajkowski +Signed-off-by: Herbert Xu +--- + drivers/crypto/inside-secure/eip93/eip93-regs.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/crypto/inside-secure/eip93/eip93-regs.h ++++ b/drivers/crypto/inside-secure/eip93/eip93-regs.h +@@ -109,7 +109,7 @@ + #define EIP93_REG_PE_BUF_THRESH 0x10c + #define EIP93_PE_OUTBUF_THRESH GENMASK(23, 16) + #define EIP93_PE_INBUF_THRESH GENMASK(7, 0) +-#define EIP93_REG_PE_INBUF_COUNT 0x100 ++#define EIP93_REG_PE_INBUF_COUNT 0x110 + #define EIP93_REG_PE_OUTBUF_COUNT 0x114 + #define EIP93_REG_PE_BUF_RW_PNTR 0x118 /* BUF_PNTR */ + diff --git a/target/linux/generic/backport-6.18/828-v7.0-crypto-inside-secure-eip93-register-hash-before-auth.patch b/target/linux/generic/backport-6.18/828-v7.0-crypto-inside-secure-eip93-register-hash-before-auth.patch new file mode 100644 index 0000000000..57bc7ccc6e --- /dev/null +++ b/target/linux/generic/backport-6.18/828-v7.0-crypto-inside-secure-eip93-register-hash-before-auth.patch @@ -0,0 +1,58 @@ +From 5377032914b29b4643adece0ff1dfc67e36700f4 Mon Sep 17 00:00:00 2001 +From: Aleksander Jan Bajkowski +Date: Fri, 6 Mar 2026 23:17:40 +0100 +Subject: [PATCH] crypto: inside-secure/eip93 - register hash before + authenc algorithms + +Register hash before hmac and authenc algorithms. This will ensure +selftests pass at startup. Previously, selftests failed on the +crypto_alloc_ahash() function since the associated algorithm was +not yet registered. + +Fixes following error: +... +[ 18.375811] alg: self-tests for authenc(hmac(sha1),cbc(aes)) using authenc(hmac(sha1-eip93),cbc(aes-eip93)) failed (rc=-2) +[ 18.382140] alg: self-tests for authenc(hmac(sha224),rfc3686(ctr(aes))) using authenc(hmac(sha224-eip93),rfc3686(ctr(aes-eip93))) failed (rc=-2) +[ 18.395029] alg: aead: authenc(hmac(sha256-eip93),cbc(des-eip93)) setkey failed on test vector 0; expected_error=0, actual_error=-2, flags=0x1 +[ 18.409734] alg: aead: authenc(hmac(md5-eip93),cbc(des3_ede-eip93)) setkey failed on test vector 0; expected_error=0, actual_error=-2, flags=0x1 +... + +Fixes: 9739f5f93b78 ("crypto: eip93 - Add Inside Secure SafeXcel EIP-93 crypto engine support") +Signed-off-by: Aleksander Jan Bajkowski +Signed-off-by: Herbert Xu +--- + drivers/crypto/inside-secure/eip93/eip93-main.c | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +--- a/drivers/crypto/inside-secure/eip93/eip93-main.c ++++ b/drivers/crypto/inside-secure/eip93/eip93-main.c +@@ -36,6 +36,14 @@ static struct eip93_alg_template *eip93_ + &eip93_alg_cbc_aes, + &eip93_alg_ctr_aes, + &eip93_alg_rfc3686_aes, ++ &eip93_alg_md5, ++ &eip93_alg_sha1, ++ &eip93_alg_sha224, ++ &eip93_alg_sha256, ++ &eip93_alg_hmac_md5, ++ &eip93_alg_hmac_sha1, ++ &eip93_alg_hmac_sha224, ++ &eip93_alg_hmac_sha256, + &eip93_alg_authenc_hmac_md5_cbc_des, + &eip93_alg_authenc_hmac_sha1_cbc_des, + &eip93_alg_authenc_hmac_sha224_cbc_des, +@@ -52,14 +60,6 @@ static struct eip93_alg_template *eip93_ + &eip93_alg_authenc_hmac_sha1_rfc3686_aes, + &eip93_alg_authenc_hmac_sha224_rfc3686_aes, + &eip93_alg_authenc_hmac_sha256_rfc3686_aes, +- &eip93_alg_md5, +- &eip93_alg_sha1, +- &eip93_alg_sha224, +- &eip93_alg_sha256, +- &eip93_alg_hmac_md5, +- &eip93_alg_hmac_sha1, +- &eip93_alg_hmac_sha224, +- &eip93_alg_hmac_sha256, + }; + + inline void eip93_irq_disable(struct eip93_device *eip93, u32 mask)