The new slots_locked variable does have influence on remaining_attempt counter.
Signed-off-by: Lars Schmidt <l.schm...@pengutronix.de> --- Documentation/user/bootchooser.rst | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Documentation/user/bootchooser.rst b/Documentation/user/bootchooser.rst index 351e1d14e1..306443270a 100644 --- a/Documentation/user/bootchooser.rst +++ b/Documentation/user/bootchooser.rst @@ -77,6 +77,16 @@ no remaining attempts left. To prevent ending up in an unbootable system after a number of failed boot attempts, there is also a built-in mechanism to reset the counters to their defaults, controlled by the ``global.bootchooser.reset_attempts`` variable. +Alternatively, counting down the remaining attempts can be disabled by +locking the bootchooser slots. +This is done by defining a (32-bit) ``slots_locked`` variable in the +bootstate and setting its value to ``1`` (usually from userspace). + +The variable affects all slots, is optional and its absence is +interpreted as ``0``, meaning that attempts are decremented normally. + +The ``slots_locked`` value does not influence the decision on which slot +to boot if any, only whether to decrement the attempts when booting. If ``global.bootchooser.retry`` is enabled (set to ``1``), the bootchooser algorithm will iterate through all valid boot targets (and decrease their @@ -107,6 +117,19 @@ on the :ref:`reset reason <reset_reason>` (i.e. != WDG) using the This will reset the ``remaining_attempts`` counter of the *last chosen* slot to its default value (``reset_attempts``). +Another option is to use ``slots_locked``. +Normally this should be controlled from Linux userspace using the *barebox-state* tool, i.e.:: + + barebox-state -s bootstate.slots_locked=1 + +It can also be locked via the :ref:`bootchooser command <command_bootchooser>`:: + + bootchooser -l + +or unlocked:: + + bootchooser -L + .. _dt-utils: https://git.pengutronix.de/cgit/tools/dt-utils -- 2.39.5