[PATCH v2 2/2] xilinx: board: Add support to pick bootscr flash offset/size from DT

Simon Glass sjg at google.com
Thu Aug 31 21:02:03 CEST 2023


On Thu, 31 Aug 2023 at 01:04, Michal Simek <michal.simek at amd.com> wrote:
>
> Location of bootscript in flash can be specified via /options/u-boot DT
> node by using bootscr-flash-offset and bootscr-flash-size properties.
> Values should be saved to script_offset_f and script_size_f variables.
> Variables are described in doc/develop/bootstd.rst as:
> script_offset_f
>     SPI flash offset from which to load the U-Boot script, e.g. 0xffe000
>
> script_size_f
>     Size of the script to load, e.g. 0x2000
>
> Both of them are used by sf_get_bootflow() in drivers/mtd/spi/sf_bootdev.c
> to identify bootscript location inside flash.
>
> Signed-off-by: Michal Simek <michal.simek at amd.com>
> ---
>
> Changes in v2:
> - Change message from printf to debug not to disturb current users
>
>  board/xilinx/common/board.c | 13 +++++++++++--
>  1 file changed, 11 insertions(+), 2 deletions(-)

Reviewed-by: Simon Glass <sjg at chromium.org>


>
> diff --git a/board/xilinx/common/board.c b/board/xilinx/common/board.c
> index b3fb6acc25a3..126f0d81a9ed 100644
> --- a/board/xilinx/common/board.c
> +++ b/board/xilinx/common/board.c
> @@ -411,6 +411,7 @@ int board_late_init_xilinx(void)
>         int i, id, macid = 0;
>         struct xilinx_board_description *desc;
>         phys_size_t bootm_size = gd->ram_top - gd->ram_base;
> +       u64 bootscr_flash_offset, bootscr_flash_size;
>
>         if (!IS_ENABLED(CONFIG_MICROBLAZE)) {
>                 ulong scriptaddr;
> @@ -435,11 +436,19 @@ int board_late_init_xilinx(void)
>                 }
>         }
>
> +       if (!ofnode_read_bootscript_flash(&bootscr_flash_offset,
> +                                         &bootscr_flash_size)) {
> +               ret |= env_set_hex("script_offset_f", bootscr_flash_offset);
> +               ret |= env_set_hex("script_size_f", bootscr_flash_size);
> +       } else {
> +               debug("!!! Please define bootscr-flash-offset via DT !!!\n");
> +               ret |= env_set_hex("script_offset_f",
> +                                  CONFIG_BOOT_SCRIPT_OFFSET);
> +       }
> +
>         if (IS_ENABLED(CONFIG_ARCH_ZYNQ) || IS_ENABLED(CONFIG_MICROBLAZE))
>                 bootm_size = min(bootm_size, (phys_size_t)(SZ_512M + SZ_256M));
>
> -       ret |= env_set_hex("script_offset_f", CONFIG_BOOT_SCRIPT_OFFSET);
> -
>         ret |= env_set_addr("bootm_low", (void *)gd->ram_base);
>         ret |= env_set_addr("bootm_size", (void *)bootm_size);
>
> --
> 2.36.1
>


More information about the U-Boot mailing list