[PATCH] configs: stm32mp: force empty PREBOOT
Patrick DELAUNAY
patrick.delaunay at st.com
Fri Oct 9 09:46:21 CEST 2020
Hi Tom,
> From: Tom Rini <trini at konsulko.com>
> Sent: jeudi 8 octobre 2020 16:16
>
> On Wed, Oct 07, 2020 at 10:10:20AM +0200, Patrick Delaunay wrote:
>
> > This patch remove the default preboot command 'usb start' for
> > STMicroelectronics board. These command is added by the commit
> > 324d77998ed6 ("Define default CONFIG_PREBOOT with right config
> > option")' and commit 44758771eefb ("arm: move CONFIG_PREBOOT="usb
> start"
> > to KConfig").
> >
> > The USB storage boot (not activated in stm32mp1.h) is correctly
> > managed by distro boot command 'usb_boot' (defined in
> > include/config_distro_bootcmd.h, it include 'usb start') and USB
> > keyboard is not supported in stm32mp15 defconfig.
> >
> > So this patch avoids unnecessary USB initialization which slows down
> > the start-up:
> > starting USB...
> > Bus usbh-ehci at 5800d000: USB EHCI 1.00
> > scanning bus usbh-ehci at 5800d000 for devices... 3 USB Device(s) found
> > scanning usb for storage devices... 1 Storage Device(s) found
> >
> > Cc: Peter Robinson <pbrobinson at gmail.com>
> > Cc: Jonas Smedegaard <dr at jones.dk>
> > Cc: Neil Armstrong <narmstrong at baylibre.com>
> > Signed-off-by: Patrick Delaunay <patrick.delaunay at st.com>
> > ---
> >
> > configs/stm32mp15_basic_defconfig | 1 +
> > configs/stm32mp15_trusted_defconfig | 1 +
> > 2 files changed, 2 insertions(+)
> >
> > diff --git a/configs/stm32mp15_basic_defconfig
> > b/configs/stm32mp15_basic_defconfig
> > index a8c4112dbe..f937a0278d 100644
> > --- a/configs/stm32mp15_basic_defconfig
> > +++ b/configs/stm32mp15_basic_defconfig
> > @@ -19,6 +19,7 @@ CONFIG_DEFAULT_DEVICE_TREE="stm32mp157c-
> ev1"
> > CONFIG_DISTRO_DEFAULTS=y
> > CONFIG_FIT=y
> > CONFIG_BOOTCOMMAND="run bootcmd_stm32mp"
> > +CONFIG_PREBOOT=""
> > CONFIG_BOARD_EARLY_INIT_F=y
> > CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
> > CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION=3
> > diff --git a/configs/stm32mp15_trusted_defconfig
> > b/configs/stm32mp15_trusted_defconfig
> > index 0792884a9d..b0be064cc3 100644
> > --- a/configs/stm32mp15_trusted_defconfig
> > +++ b/configs/stm32mp15_trusted_defconfig
> > @@ -12,6 +12,7 @@ CONFIG_DEFAULT_DEVICE_TREE="stm32mp157c-
> ev1"
> > CONFIG_DISTRO_DEFAULTS=y
> > CONFIG_FIT=y
> > CONFIG_BOOTCOMMAND="run bootcmd_stm32mp"
> > +CONFIG_PREBOOT=""
> > CONFIG_SYS_PROMPT="STM32MP> "
> > CONFIG_CMD_ADTIMG=y
> > # CONFIG_CMD_ELF is not set
>
> In this case you should disable CONFIG_USE_PREBOOT.
I activate CONFIG_USE_PREBOOT to handle the "preboot" variable in
common/main.c::main_loop()
if (IS_ENABLED(CONFIG_USE_PREBOOT))
run_preboot_environment_command();
But I expect that the "preboot" varibale in empty by default,
as it is the case until now.
In my case the preboot variable is dynamically build in
arch/arm/mach-stm32mp/cpu.c::setup_boot_mode()
it is why I activate the USE_PREBOOT by default:
with imply in mach-stm32mp Kconfig.
I use this feature to handle the 'forced' boot request,
and I preferred don't override the bootcmd
(I handle the fastboot 'continue' command without any effort:
the bootcmd is executed after preboot=fastboot)
And it is managed by linux with reboot mode driver:
tamp: tamp at 5c00a000 {
compatible = "simple-bus", "syscon", "simple-mfd";
reg = <0x5c00a000 0x400>;
reboot-mode {
compatible = "syscon-reboot-mode";
offset = <0x150>; /* reg20 */
mask = <0xff>;
mode-normal = <0>;
mode-fastboot = <0x1>;
mode-recovery = <0x2>;
mode-stm32cubeprogrammer = <0x3>;
mode-ums_mmc0 = <0x10>;
mode-ums_mmc1 = <0x11>;
mode-ums_mmc2 = <0x12>;
};
};
So the expected configuration for me is
- CONFIG_USE_PREBOOT=y => variable preboot is handle
- CONFIG_PREBOOT="" => default value of variable
> --
> Tom
Regards
Patrick
More information about the U-Boot
mailing list