diff options
| author | Martyn Welch <[email protected]> | 2024-10-09 14:15:40 +0100 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2024-10-15 10:24:27 -0600 |
| commit | 3809fd35a5dbdbd62043ba0a72c3f37f58e69f9d (patch) | |
| tree | b7a3cbf6da74d598d2e8529aaf18a30ce3ccba57 /doc | |
| parent | 8ba82a91b3aa615fb6148ecfa2af4e91a28659ae (diff) | |
bootstd: Add command to enable setting of bootmeth specific properties
We have previously added logic to allow a "fallback" option to be
specified in the extlinux configuration. Provide a command that allows
us to set this as the preferred default option when booting.
Combined with the bootcount functionality, this allows the "altbootcmd"
to provide a means of falling back to a previously known good state
after a failed update. For example, if "bootcmd" is set to:
bootflow scan -lb
We would set "altbootcmd" to:
bootmeth set extlinux fallback 1; bootflow scan -lb
Causing the boot process to boot from the fallback option.
Reviewed-by: Simon Glass <[email protected]>
Signed-off-by: Martyn Welch <[email protected]>
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/develop/bootstd/overview.rst | 10 | ||||
| -rw-r--r-- | doc/usage/cmd/bootmeth.rst | 38 |
2 files changed, 45 insertions, 3 deletions
diff --git a/doc/develop/bootstd/overview.rst b/doc/develop/bootstd/overview.rst index c6f003851b2..a2913cd47be 100644 --- a/doc/develop/bootstd/overview.rst +++ b/doc/develop/bootstd/overview.rst @@ -103,6 +103,12 @@ provide a `read_bootflow()` method which checks whatever bootdevs it likes, then returns the bootflow, if found. Some of these bootmeths may be very slow, if they scan a lot of devices. +The extlinux bootmeth also allows for bootmeth specific configuration to be +set. A bootmeth that wishes to support this provides the `set_property()` +method. This allows string properties and values to be passed to the bootmeth. +It is up to the bootmeth to determine what action to take when this method is +called. + Boot process ------------ @@ -459,8 +465,8 @@ Three commands are available: See :doc:`/usage/cmd/bootflow` `bootmeth` - Allow listing of available bootmethds and setting the order in which they - are tried. See :doc:`/usage/cmd/bootmeth` + Allow listing of available bootmethds, setting the order in which they are + tried and bootmeth specific configuration. See :doc:`/usage/cmd/bootmeth` .. _BootflowStates: diff --git a/doc/usage/cmd/bootmeth.rst b/doc/usage/cmd/bootmeth.rst index c3d2ec1574b..4f899d92b2e 100644 --- a/doc/usage/cmd/bootmeth.rst +++ b/doc/usage/cmd/bootmeth.rst @@ -12,7 +12,8 @@ Synopsis :: bootmeth list [-a] - list selected bootmeths (-a for all) - bootmeth order "[<bm> ...]" - select the order of bootmeths\n" + bootmeth order "[<bm> ...]" - select the order of bootmeths + bootmeth set <bootmeth> <property> <value> - set optional property Description @@ -112,3 +113,38 @@ which are not:: - 4 efi_mgr EFI bootmgr flow ----- --- ------------------ ------------------ (5 bootmeths) + + +bootmeth set +~~~~~~~~~~~~ + +Allows setting of bootmeth specific configuration. This allows finer grain +control over the boot process in specific instances. + + +Supported Configuration Options +------------------------------- + +The following configuration options are currently supported: + +======== =================== ====== =============================== +Property Supported Bootmeths Values Description +======== =================== ====== =============================== +fallback extlinux 0 | 1 Enable or disable fallback path +======== =================== ====== =============================== + + +Bootmeth set Example +-------------------- + +With the bootcount functionality enabled, when the bootlimit is reached, the +`altbootcmd` environment variable lists the command used for booting rather +than `bootcmd`. We can set the fallback configuration to cause the fallback +boot option to be preferred, to revert to a previous known working boot option +after a failed update for example. So if `bootcmd` is set to:: + + bootflow scan -lb + +We would set "altbootcmd" to:: + + bootmeth set extlinux fallback 1; bootflow scan -lb |
