[PATCH] arm64: versal: RO multi_boot register in non JTAG bootmode

Michal Simek michal.simek at amd.com
Tue Jan 14 08:29:10 CET 2025



On 1/6/25 10:20, Michal Simek wrote:
> The main reason for this change is that upstream QEMU has no multiboot
> register implemented that's why access to it fails which ends up in CI
> failure for our target.
> That's why in JTAG bootmode returns 0 which is correct behaviour because
> multiboot register is not used in this mode and value should be ignored and
> as a side effect it is also fixing CI/Qemu issue.
> 
> Also move versal_get_bootmode() to avoid function declaration.
> 
> Signed-off-by: Michal Simek <michal.simek at amd.com>
> ---
> 
>   board/xilinx/versal/board.c | 36 +++++++++++++++++++++---------------
>   1 file changed, 21 insertions(+), 15 deletions(-)
> 
> diff --git a/board/xilinx/versal/board.c b/board/xilinx/versal/board.c
> index d05220f96ffd..cff810e02ad8 100644
> --- a/board/xilinx/versal/board.c
> +++ b/board/xilinx/versal/board.c
> @@ -36,8 +36,29 @@ static xilinx_desc versalpl = {
>   };
>   #endif
>   
> +static u8 versal_get_bootmode(void)
> +{
> +	u8 bootmode;
> +	u32 reg = 0;
> +
> +	reg = readl(&crp_base->boot_mode_usr);
> +
> +	if (reg >> BOOT_MODE_ALT_SHIFT)
> +		reg >>= BOOT_MODE_ALT_SHIFT;
> +
> +	bootmode = reg & BOOT_MODES_MASK;
> +
> +	return bootmode;
> +}
> +
>   static u32 versal_multi_boot(void)
>   {
> +	u8 bootmode = versal_get_bootmode();
> +
> +	/* Mostly workaround for QEMU CI pipeline */
> +	if (bootmode == JTAG_MODE)
> +		return 0;
> +
>   	return readl(0xF1110004);
>   }
>   
> @@ -120,21 +141,6 @@ unsigned long do_go_exec(ulong (*entry)(int, char * const []), int argc,
>   	return ret;
>   }
>   
> -static u8 versal_get_bootmode(void)
> -{
> -	u8 bootmode;
> -	u32 reg = 0;
> -
> -	reg = readl(&crp_base->boot_mode_usr);
> -
> -	if (reg >> BOOT_MODE_ALT_SHIFT)
> -		reg >>= BOOT_MODE_ALT_SHIFT;
> -
> -	bootmode = reg & BOOT_MODES_MASK;
> -
> -	return bootmode;
> -}
> -
>   static int boot_targets_setup(void)
>   {
>   	u8 bootmode;

Applied.
M


More information about the U-Boot mailing list