[PATCH] distro_boot: Fix block device after DHCP boot sequence

Simon Glass sjg at chromium.org
Tue Jul 20 20:32:49 CEST 2021


On Sun, 11 Jul 2021 at 17:07, Andre Przywara <andre.przywara at arm.com> wrote:
>
> The generic distro boot sequence iterates over several types of devices,
> trying one after another. In doing do, it starts with setting the
> "devtype" variable, then uses this later in more generic commands.
>
> Now most (block) device types use a local variable for that, but DHCP
> puts the type into the environment, where it shadows any local variables.
> As a consequence any boot attempt after bootcmd_dhcp has been run fails:
> ===========================
> VExpress64# run bootcmd_dhcp
> ...
> VExpress64# run bootcmd_sata0
> SATA#0:
>         (3.0 Gbps)
> SATA#1:
>         (No RDY)
> Device 0: Model: 16GB SATA Flash Drive  ....
> ... is now current device
> Couldn't find partition dhcp 0:1
> ===========================
> This problem typically doesn't show, because DHCP is mostly the last
> command to try, but is a problem when this order is different, or when
> distro_bootcmd or bootcmd_xxx are run separately or multiple times.
>
> Let bootcmd_dhcp use a local variable, as the other kids do, to make the
> order of boot commands irrelevant, and allow repeated calls.
>
> Signed-off-by: Andre Przywara <andre.przywara at arm.com>
> ---
>  include/config_distro_bootcmd.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

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


More information about the U-Boot mailing list