From bcb1d269a4b9870033baced22b8225c089aa005a Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Wed, 22 Feb 2023 14:06:23 -0700 Subject: bootstd: Make BOOTSTD_FULL depend on BOOTSTD Move BOOTSTD_FULL down in the file so that it can be enabled only when BOOTSTD is enabled. This prevents a build error if BOOTSTD is disabled but BOOTSTD_FULL is enabled. Signed-off-by: Simon Glass Reviewed-by: Ilias Apalodimas --- boot/Kconfig | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'boot') diff --git a/boot/Kconfig b/boot/Kconfig index eea5ed6040f..a643a3d1286 100644 --- a/boot/Kconfig +++ b/boot/Kconfig @@ -397,19 +397,6 @@ config BOOTSTD U-Boot) - bootflow - a description of how to boot (owned by the distro) -config BOOTSTD_FULL - bool "Enhanced features for standard boot" - default y if SANDBOX - help - This enables various useful features for standard boot, which are not - essential for operation: - - - bootdev, bootmeth commands - - extra features in the bootflow command - - support for selecting the ordering of bootmeths ("bootmeth order") - - support for selecting the ordering of bootdevs using the devicetree - as well as the "boot_targets" environment variable - config SPL_BOOTSTD bool "Standard boot support in SPL" depends on SPL && SPL_DM && SPL_OF_CONTROL && SPL_BLK @@ -432,6 +419,19 @@ config VPL_BOOTSTD if BOOTSTD +config BOOTSTD_FULL + bool "Enhanced features for standard boot" + default y if SANDBOX + help + This enables various useful features for standard boot, which are not + essential for operation: + + - bootdev, bootmeth commands + - extra features in the bootflow command + - support for selecting the ordering of bootmeths ("bootmeth order") + - support for selecting the ordering of bootdevs using the devicetree + as well as the "boot_targets" environment variable + config BOOTSTD_DEFAULTS bool "Select some common defaults for standard boot" depends on BOOTSTD -- cgit v1.3.1 From a7e4dffcd8c582bf4344548270d2fc7ac6c0f9ec Mon Sep 17 00:00:00 2001 From: Jonas Karlman Date: Fri, 9 Jun 2023 14:59:01 +0000 Subject: bootstd: Fix relative path use in extlinux bootmeth Using relative path in a /boot/extlinux/extlinux.conf file fails to load linux kernel. Using a /boot/extlinux/extlinux.conf file: LABEL test LINUX ../linux/Image Result in following error: Retrieving file: ../linux/Image Skipping test for failure retrieving kernel Boot failed (err=-14) However, using sysboot cmd successfully load kernel using same file: sysboot mmc 1:1 any ${scriptaddr} /boot/extlinux/extlinux.conf Retrieving file: /boot/extlinux/../linux/Image Fix relative path using bootmeth extlinux by supplying bootfile path instead of subdir path in the call to pxe_setup_ctx, same as done in the sysboot command. Fixes: 31aefaf89a5b ("bootstd: Add an implementation of distro boot") Signed-off-by: Jonas Karlman Reviewed-by: Simon Glass --- boot/bootmeth_extlinux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'boot') diff --git a/boot/bootmeth_extlinux.c b/boot/bootmeth_extlinux.c index 24be0760229..6b2b8400383 100644 --- a/boot/bootmeth_extlinux.c +++ b/boot/bootmeth_extlinux.c @@ -150,7 +150,7 @@ static int extlinux_boot(struct udevice *dev, struct bootflow *bflow) info.dev = dev; info.bflow = bflow; ret = pxe_setup_ctx(&ctx, &cmdtp, extlinux_getfile, &info, true, - bflow->subdir, false); + bflow->fname, false); if (ret) return log_msg_ret("ctx", -EINVAL); -- cgit v1.3.1 From 4533b3d0a346ab974b59badc61c904f3adb55a84 Mon Sep 17 00:00:00 2001 From: Heinrich Schuchardt Date: Tue, 13 Jun 2023 08:18:27 +0200 Subject: bootm: don't call booti_setup for EFI images On the arm64 architecture booti_setup() is called for EFI FIT images. This function call fails because EFI images typically do not have a kernel signature. Check that the operating system property "os" of the image is "linux" before invoking booti_setup(). Fixes: 487b5fa6deb1 ("bootm: Handle kernel_noload on arm64") Signed-off-by: Heinrich Schuchardt Reviewed-by: Simon Glass --- boot/bootm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'boot') diff --git a/boot/bootm.c b/boot/bootm.c index 4144ff3b031..75f0b4a9af8 100644 --- a/boot/bootm.c +++ b/boot/bootm.c @@ -240,7 +240,8 @@ static int bootm_find_os(struct cmd_tbl *cmdtp, int flag, int argc, if (images.os.type == IH_TYPE_KERNEL_NOLOAD) { if (IS_ENABLED(CONFIG_CMD_BOOTI) && - images.os.arch == IH_ARCH_ARM64) { + images.os.arch == IH_ARCH_ARM64 && + images.os.os == IH_OS_LINUX) { ulong image_addr; ulong image_size; -- cgit v1.3.1