"Das U-Boot" Source Tree
at master 58 lines 1.9 kB view raw
1.. SPDX-License-Identifier: GPL-2.0+ 2 3Boot Count Limit 4================ 5 6This is enabled by CONFIG_BOOTCOUNT_LIMIT. 7 8This allows to detect multiple failed attempts to boot Linux. 9 10After a power-on reset, the ``bootcount`` variable will be initialized to 1, and 11each reboot will increment the value by 1. 12 13If, after a reboot, the new value of ``bootcount`` exceeds the value of 14``bootlimit``, then instead of the standard boot action (executing the contents 15of ``bootcmd``), an alternate boot action will be performed, and the contents of 16``altbootcmd`` will be executed. 17 18If the variable ``bootlimit`` is not defined in the environment, the Boot Count 19Limit feature is disabled. If it is enabled, but ``altbootcmd`` is not defined, 20then U-Boot will drop into interactive mode and remain there. 21 22It is the responsibility of some application code (typically a Linux 23application) to reset the variable ``bootcount`` to 0 when the system booted 24successfully, thus allowing for more boot cycles. 25 26CONFIG_BOOTCOUNT_FS 27-------------------- 28 29This adds support for maintaining boot count in a file on a filesystem. 30Tested filesystems are FAT and EXT. The file to use is defined by: 31 32CONFIG_SYS_BOOTCOUNT_FS_INTERFACE 33CONFIG_SYS_BOOTCOUNT_FS_DEVPART 34CONFIG_SYS_BOOTCOUNT_FS_NAME 35 36The format of the file is: 37 38.. list-table:: 39 :header-rows: 1 40 41 * - type 42 - entry 43 * - u8 44 - magic 45 * - u8 46 - version 47 * - u8 48 - bootcount 49 * - u8 50 - upgrade_available 51 52To prevent unintended usage of ``altbootcmd``, the ``upgrade_available`` 53variable is used. 54If ``upgrade_available`` is 0, ``bootcount`` is not saved. 55If ``upgrade_available`` is 1, ``bootcount`` is saved. 56So a userspace application should take care of setting the ``upgrade_available`` 57and ``bootcount`` variables to 0, if the system boots successfully. 58This also avoids writing the ``bootcount`` information on all reboots.