Message ID | 20221213040803.92424-1-marcel@ziswiler.com |
---|---|
State | Accepted |
Commit | 7246ec19345a07befaabcde1cbf38ad78d0c1c8d |
Delegated to: | Stefano Babic |
Headers | show |
Series | [v1] imx8: scu_api: sync sc_rm_is_pad_owned api change | expand |
Any feedback? @Stefano: Any plans to apply anything? On Tue, 2022-12-13 at 05:08 +0100, Marcel Ziswiler wrote: > From: Ye Li <ye.li@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@nxp.com> > Reviewed-by : Jason Liu <Jason.hui.liu@nxp.com> > Signed-off-by: Marcel Ziswiler <marcel.ziswiler@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);
> From: Ye Li <ye.li@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@nxp.com> > Reviewed-by : Jason Liu <Jason.hui.liu@nxp.com> > Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic
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);