[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