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

Marcel Ziswiler marcel.ziswiler at toradex.com
Tue Jan 10 10:54:44 CET 2023


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 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);


More information about the U-Boot mailing list