summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/README.pxe3
-rw-r--r--doc/develop/distro.rst7
-rw-r--r--lib/efi_loader/efi_bootmgr.c2
3 files changed, 10 insertions, 2 deletions
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 <path> [...] - if this label is chosen, use tftp to retrieve
kaslrseed - set this label to request random number from hwrng as kaslr seed.
append <string> - use <string> as the kernel command line when booting this
- label.
+ label. Environment variable references like ${var} are
+ substituted before boot.
initrd <path> - if this label is chosen, use tftp to retrieve the initrd
at <path>. 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::
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;