mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-12-21 17:32:09 +01:00
The documentation of bootmeth rauc in some aspects does not reflect the real program flow. Specifically the reset of boot tries in case of "no more slots found" is incorrect (it won't change BOOT_ORDER). Also the search sequence for boot scripts was mixed and incomplete. Fix these points in the documentation. Explain the initial setup of any missing BOOT_ORDER and BOOT_x_LEFT environment variables, and inform about BOOT_x_LEFT decrementing. Signed-off-by: Andreas Pretzsch <apr@cn-eng.de> Reviewed-by: Martin Schwan <m.schwan@phytec.de>
64 lines
2.5 KiB
ReStructuredText
64 lines
2.5 KiB
ReStructuredText
.. SPDX-License-Identifier: GPL-2.0+:
|
|
|
|
RAUC Bootmeth
|
|
=============
|
|
|
|
This bootmeth provides a way to locate and run an A/B system with RAUC as its
|
|
update client. The booted distro must supply a script on an MMC device
|
|
containing the final boot instructions necessary.
|
|
|
|
This bootmeth assumes a symmetric A/B partition layout, with a separate boot
|
|
partition containing the kernel image and another partition for the root
|
|
filesystem each. The partition numbers must be specified with
|
|
``CONFIG_BOOTMETH_RAUC_PARTITIONS``. The content must be a list of pairs, with
|
|
the following syntax: ``1,2 3,4``, where 1 and 3 are the slots' boot partition
|
|
and 2 and 4 the slots' root partition.
|
|
|
|
Each pair of boot and rootfs partition form a "slot". The default order in which
|
|
available slots are tried is set through ``CONFIG_BOOTMETH_RAUC_BOOT_ORDER``,
|
|
with the left one tried first.
|
|
|
|
The default number of boot tries of each slot is set by
|
|
``CONFIG_BOOTMETH_RAUC_DEFAULT_TRIES``.
|
|
|
|
If ``BOOT_ORDER`` does not exist in environment, it will be created and set to
|
|
``CONFIG_BOOTMETH_RAUC_BOOT_ORDER``. If any ``BOOT_x_LEFT`` (for example
|
|
``BOOT_A_LEFT`` and/or ``BOOT_B_LEFT``) does not exist in environment, it will
|
|
be created and set to ``CONFIG_BOOTMETH_RAUC_DEFAULT_TRIES``.
|
|
|
|
If ``CONFIG_BOOTMETH_RAUC_RESET_ALL_ZERO_TRIES`` is enabled, and no valid slot
|
|
is found (all slots in ``BOOT_ORDER`` have ``BOOT_x_LEFT`` set to 0), *all* slot
|
|
tries are reset to their default values. This prevents a system from locking up
|
|
in the bootloader and tries booting again after a specified number of tries.
|
|
|
|
If a valid slot is found, its LEFT value in environment is decremented by 1.
|
|
|
|
The boot script must be located in each boot partition. The bootmeth searches
|
|
for ``boot.scr`` first, then ``boot.scr.uimg`` if not found. It will search in
|
|
all directories of the bootstd list of prefixes (``"/", "/boot"`` by default).
|
|
|
|
When the bootflow is booted, the bootmeth sets these environment variables:
|
|
|
|
devtype
|
|
device type (e.g. "mmc")
|
|
|
|
devnum
|
|
device number, corresponding to the device 'sequence' number
|
|
``dev_seq(dev)``
|
|
|
|
distro_bootpart
|
|
partition number of the boot partition on the device (numbered from 1)
|
|
|
|
distro_rootpart
|
|
partition number of the rootfs partition on the device (numbered from 1)
|
|
|
|
raucargs
|
|
kernel command line arguments needed for RAUC to detect the currently booted
|
|
slot
|
|
|
|
The script file must be a FIT or a legacy uImage. It is loaded into memory and
|
|
executed.
|
|
|
|
The compatible string "u-boot,distro-rauc" is used for the driver. It is present
|
|
if ``CONFIG_BOOTMETH_RAUC`` is enabled.
|