> From: Qu Wenruo <w...@suse.com>
> Date: Fri, 17 Sep 2021 19:02:35 +0800
> 
> When booting using U-boot -> systemd-boot (EFI payload) -> kernel on
> RK3399, systemd-boot by some bug can't execute its "devicetree" key
> correctly to load its proper dtb from files.
> 
> In that case, it will use fallback dtb from U-boot, which can be
> out-of-date, and on RK3399, even the latest U-boot contains out-of-date
> dtb which can cause problems like invalid opp tables.
> 
> And for systemd-boot, it doesn't provide any board specific dtb, but
> completely relies on the EFI environment provided by U-boot, thus if we
> can't find a good dtb, the fallback one will be used anyway.
> 
> So this patch will workaround the problem by appending common linux dtbs
> directory to the existing "efi_dtb_prefixes" so that for systemd-boot it
> can use the existing fdt and boot properly.

Why isn't the dtb installed in the standard location?

Slowing the boot process down because distro's can't agree where to
put the files is a bit lame...

> Signed-off-by: Qu Wenruo <w...@suse.com>
> ---
>  include/config_distro_bootcmd.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/config_distro_bootcmd.h b/include/config_distro_bootcmd.h
> index 2627c2a6a541..4ec87483eb65 100644
> --- a/include/config_distro_bootcmd.h
> +++ b/include/config_distro_bootcmd.h
> @@ -151,7 +151,7 @@
>               "load ${devtype} ${devnum}:${distro_bootpart} "           \
>                       "${fdt_addr_r} ${prefix}${efi_fdtfile}\0"         \
>       \
> -     "efi_dtb_prefixes=/ /dtb/ /dtb/current/\0"                        \
> +     "efi_dtb_prefixes=/ /dtb/ /dtb/current/ /dtbs/ /dtbs/current/\0"  \
>       "scan_dev_for_efi="                                               \
>               "setenv efi_fdtfile ${fdtfile}; "                         \
>               BOOTENV_EFI_SET_FDTFILE_FALLBACK                          \
> -- 
> 2.33.0
> 
> 

Reply via email to