From 97d6a2e3fe619b50303f97d0eebafaf50f1f075d Mon Sep 17 00:00:00 2001 From: Fiona Klute Date: Mon, 23 Jun 2025 13:38:01 +0200 Subject: [PATCH 1/2] doc: mention that extlinux.conf can use environment in "append" This option is very useful for A/B boot setups with read-only filesystems: Letting U-Boot fill in the rootfs (and possibly related parameters) allows keeping all boot parameters except the actual slot selection in the extlinux.conf file, where they can be updated easily. Signed-off-by: Fiona Klute Cc: Tom Rini --- doc/README.pxe | 3 ++- doc/develop/distro.rst | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/README.pxe b/doc/README.pxe index 9fff2cd5ae9..ba189080e8c 100644 --- a/doc/README.pxe +++ b/doc/README.pxe @@ -178,7 +178,8 @@ devicetree-overlay [...] - if this label is chosen, use tftp to retrieve kaslrseed - set this label to request random number from hwrng as kaslr seed. append - use as the kernel command line when booting this - label. + label. Environment variable references like ${var} are + substituted before boot. initrd - if this label is chosen, use tftp to retrieve the initrd at . it will be stored at the address indicated in diff --git a/doc/develop/distro.rst b/doc/develop/distro.rst index 1d2f9c4c32b..01efce40a29 100644 --- a/doc/develop/distro.rst +++ b/doc/develop/distro.rst @@ -92,6 +92,13 @@ That said, we have some differences to these documents, namely: * If ``-`` is passed as fdt argument and ``CONFIG_SUPPORT_PASSING_ATAGS`` is enabled, then no device tree will be used (legacy booting / pre-dtb kernel). +* The ``append`` string may use environment variables. For example, an + A/B boot setup could use ``append root=PARTLABEL=root_${bootslot}`` + to set the root filesystem to the right one for the selected slot, + assuming the ``bootslot`` environment variable is set before the + extlinux.conf file is processed, and the partition is labeled to + match. + See also doc/README.pxe under 'pxe file format'. One example extlinux.conf generated by the Fedora installer is:: From e80baf06af50a4c8c6f41e9b67f9931f964ced87 Mon Sep 17 00:00:00 2001 From: Ilias Apalodimas Date: Wed, 25 Jun 2025 20:15:28 +0300 Subject: [PATCH 2/2] efi_loader: initialize 'total' variable This variable might end up being uninitialized if we exit early. Signed-off-by: Ilias Apalodimas Reviewed-by: Heinrich Schuchardt --- lib/efi_loader/efi_bootmgr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/efi_loader/efi_bootmgr.c b/lib/efi_loader/efi_bootmgr.c index 1a3461f5a9d..83f4a3525bd 100644 --- a/lib/efi_loader/efi_bootmgr.c +++ b/lib/efi_loader/efi_bootmgr.c @@ -1133,7 +1133,7 @@ efi_status_t efi_bootmgr_update_media_device_boot_option(void) { u32 i; efi_status_t ret; - efi_uintn_t count, num, total; + efi_uintn_t count, num, total = 0; efi_handle_t *handles = NULL; struct eficonfig_media_boot_option *opt = NULL;