[PATCH v3 31/31] RFC: Switch rpi over to use bootstd

Simon Glass sjg at chromium.org
Wed Jan 19 15:37:36 CET 2022


Hi Tom,

On Wed, 19 Jan 2022 at 07:04, Tom Rini <trini at konsulko.com> wrote:
>
> On Tue, Jan 18, 2022 at 06:43:15PM -0700, Simon Glass wrote:
>
> > Switch this over, for testing purposes.
> >
> > Signed-off-by: Simon Glass <sjg at chromium.org>
> > ---
> >
> > (no changes since v1)
> >
> >  boot/Kconfig          |  3 ++-
> >  include/configs/rpi.h | 39 ++-------------------------------------
> >  2 files changed, 4 insertions(+), 38 deletions(-)
> >
> > diff --git a/boot/Kconfig b/boot/Kconfig
> > index 9cf1d013f20..eab3c0f3467 100644
> > --- a/boot/Kconfig
> > +++ b/boot/Kconfig
> > @@ -1124,7 +1124,8 @@ config USE_BOOTCOMMAND
> >  config BOOTCOMMAND
> >       string "bootcmd value"
> >       depends on USE_BOOTCOMMAND && !USE_DEFAULT_ENV_FILE
> > -     default "run distro_bootcmd" if DISTRO_DEFAULTS
> > +     default "bootflow scan -lb" if BOOTSTD
> > +     default "run distro_bootcmd" if !BOOTSTD && DISTRO_DEFAULTS
> >       help
> >         This is the string of commands that will be used as bootcmd and if
> >         AUTOBOOT is set, automatically run.
> > diff --git a/include/configs/rpi.h b/include/configs/rpi.h
> > index d5e064fb379..ea373d0c221 100644
> > --- a/include/configs/rpi.h
> > +++ b/include/configs/rpi.h
> > @@ -133,47 +133,12 @@
> >       "fdt_addr_r=0x02600000\0" \
> >       "ramdisk_addr_r=0x02700000\0"
> >
> > -#if CONFIG_IS_ENABLED(CMD_MMC)
> > -     #define BOOT_TARGET_MMC(func) \
> > -             func(MMC, mmc, 0) \
> > -             func(MMC, mmc, 1) \
> > -             func(MMC, mmc, 2)
> > -#else
> > -     #define BOOT_TARGET_MMC(func)
> > -#endif
> > -
> > -#if CONFIG_IS_ENABLED(CMD_USB)
> > -     #define BOOT_TARGET_USB(func) func(USB, usb, 0)
> > -#else
> > -     #define BOOT_TARGET_USB(func)
> > -#endif
> > -
> > -#if CONFIG_IS_ENABLED(CMD_PXE)
> > -     #define BOOT_TARGET_PXE(func) func(PXE, pxe, na)
> > -#else
> > -     #define BOOT_TARGET_PXE(func)
> > -#endif
> > -
> > -#if CONFIG_IS_ENABLED(CMD_DHCP)
> > -     #define BOOT_TARGET_DHCP(func) func(DHCP, dhcp, na)
> > -#else
> > -     #define BOOT_TARGET_DHCP(func)
> > -#endif
> > -
> > -#define BOOT_TARGET_DEVICES(func) \
> > -     BOOT_TARGET_MMC(func) \
> > -     BOOT_TARGET_USB(func) \
> > -     BOOT_TARGET_PXE(func) \
> > -     BOOT_TARGET_DHCP(func)
> > -
> > -#include <config_distro_bootcmd.h>
> > -
> >  #define CONFIG_EXTRA_ENV_SETTINGS \
> >       "dhcpuboot=usb start; dhcp u-boot.uimg; bootm\0" \
> > +     "boot_targets=mmc0 mmc1 usb0 pxe dhcp\0" \
>
> We have the indirect defines to func(...) everywhere so that if a
> feature is disabled we still build + function, as otherwise it's a loud
> link error.  I assume with this we just get a try and fail move to the
> next target at run time, yes?

Yes, that's right. But I hope that boards actually set up the boot
targets correctly so that only those that are actually supported are
enabled.

This series has the basic functionality but once we have it in I need
to look at more individual cases, like all the devicetree variations.
As you can imagine it is tricky to convert hundreds of boards all at
one, but I plan to start with a few that I can test.

Regards,
Simon



>
> --
> Tom


More information about the U-Boot mailing list