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