[PATCH v1] imx8: scu_api: sync sc_rm_is_pad_owned api change

Marcel Ziswiler marcel at ziswiler.com
Tue Dec 13 05:08:02 CET 2022


From: Ye Li <ye.li at nxp.com>

SCFW has fixed a overflow issue in sc_rm_is_pad_owned API. This
requires u-boot to update API implementation, since it will cause
compatible issue. Otherwise all pad checking will have problem and
cause pad setting not continue.

Due to the compatible issue, the new u-boot only works with new
SCFW (API version: 1.21 and later).

old scfw + old u-boot: API overflow issue
old scfw + new u-boot, or new scfw + old u-boot: API compatible issue
new scfw + new u-boot: Working

Signed-off-by: Ye Li <ye.li at nxp.com>
Reviewed-by : Jason Liu <Jason.hui.liu at nxp.com>
Signed-off-by: Marcel Ziswiler <marcel.ziswiler at toradex.com>

---
I stumbled over this one when working on the apalis-imx8 boot issue fix
and support refresh [1] where I noticed that using the latest SCFW
Ethernet won't come up. Through manual testing, I identified SCFW 1.3.1
to still work fine so I settled with that for the time being.
Re-visiting this SCFW incompatibility issue again now I stumbled over
this downstream commit [2] which I believe would be very suitable for
upstreaming as well. With that latest SCFW 1.14.0 works fine again. So
here it goes.

[1] https://patchwork.ozlabs.org/project/uboot/cover/20221212000930.45505-1-marcel@ziswiler.com/
[2] https://github.com/nxp-imx/uboot-imx/commit/9be6761bccd008de16191aed325004bd982f770f

 arch/arm/include/asm/arch-imx8/sci/rpc.h | 2 +-
 drivers/misc/imx8/scu_api.c              | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/include/asm/arch-imx8/sci/rpc.h b/arch/arm/include/asm/arch-imx8/sci/rpc.h
index 9f55904f44..39de7f0e3e 100644
--- a/arch/arm/include/asm/arch-imx8/sci/rpc.h
+++ b/arch/arm/include/asm/arch-imx8/sci/rpc.h
@@ -11,7 +11,7 @@
 /* Defines */
 
 #define SCFW_API_VERSION_MAJOR  1U
-#define SCFW_API_VERSION_MINOR  15U
+#define SCFW_API_VERSION_MINOR  21U
 
 #define SC_RPC_VERSION          1U
 
diff --git a/drivers/misc/imx8/scu_api.c b/drivers/misc/imx8/scu_api.c
index 27ecce710f..8f546e9b3f 100644
--- a/drivers/misc/imx8/scu_api.c
+++ b/drivers/misc/imx8/scu_api.c
@@ -788,7 +788,7 @@ sc_bool_t sc_rm_is_pad_owned(sc_ipc_t ipc, sc_pad_t pad)
 	RPC_VER(&msg) = SC_RPC_VERSION;
 	RPC_SVC(&msg) = (u8)SC_RPC_SVC_RM;
 	RPC_FUNC(&msg) = (u8)RM_FUNC_IS_PAD_OWNED;
-	RPC_U8(&msg, 0U) = (u8)pad;
+	RPC_U16(&msg, 0U) = (u16)pad;
 	RPC_SIZE(&msg) = 2U;
 
 	ret = misc_call(dev, SC_FALSE, &msg, size, &msg, size);
-- 
2.35.1



More information about the U-Boot mailing list