Skip to content

Latest commit

 

History

History
58 lines (44 loc) · 1.85 KB

File metadata and controls

58 lines (44 loc) · 1.85 KB

Boot Count Limit

This is enabled by CONFIG_BOOTCOUNT_LIMIT.

This allows to detect multiple failed attempts to boot Linux.

After a power-on reset, the bootcount variable will be initialized to 1, and each reboot will increment the value by 1.

If, after a reboot, the new value of bootcount exceeds the value of bootlimit, then instead of the standard boot action (executing the contents of bootcmd), an alternate boot action will be performed, and the contents of altbootcmd will be executed.

If the variable bootlimit is not defined in the environment, the Boot Count Limit feature is disabled. If it is enabled, but altbootcmd is not defined, then U-Boot will drop into interactive mode and remain there.

It is the responsibility of some application code (typically a Linux application) to reset the variable bootcount to 0 when the system booted successfully, thus allowing for more boot cycles.

CONFIG_BOOTCOUNT_FS

This adds support for maintaining boot count in a file on a filesystem. Tested filesystems are FAT and EXT. The file to use is defined by:

CONFIG_SYS_BOOTCOUNT_FS_INTERFACE CONFIG_SYS_BOOTCOUNT_FS_DEVPART CONFIG_SYS_BOOTCOUNT_FS_NAME

The format of the file is:

type entry
u8 magic
u8 version
u8 bootcount
u8 upgrade_available

To prevent unintended usage of altbootcmd, the upgrade_available variable is used. If upgrade_available is 0, bootcount is not saved. If upgrade_available is 1, bootcount is saved. So a userspace application should take care of setting the upgrade_available and bootcount variables to 0, if the system boots successfully. This also avoids writing the bootcount information on all reboots.