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. 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