mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-16 18:04:48 +00:00

Add CONFIG_BOOTCOUNT_ALTBOOTCMD so the developer is able to add custom altbootcmd via Kconfig when they enable BOOTCOUNT. With this now in Kconfig, we need to move it from environment files / config.h files and in to the defconfig file. This was done by generating u-boot-initial-env for all platforms before the Kconfig change, to extract altbootcmd values and then again after to compare the result. [trini: Perform migration to defconfigs, reword commit message] Signed-off-by: Tom Rini <trini@konsulko.com>
252 lines
8.3 KiB
Text
252 lines
8.3 KiB
Text
#
|
|
# Boot count configuration
|
|
#
|
|
|
|
menuconfig BOOTCOUNT_LIMIT
|
|
bool "Enable support for checking boot count limit"
|
|
help
|
|
Enable checking for exceeding the boot count limit.
|
|
More information: https://docs.u-boot.org/en/latest/api/bootcount.html
|
|
|
|
if BOOTCOUNT_LIMIT
|
|
|
|
choice
|
|
prompt "Boot count device"
|
|
default BOOTCOUNT_AM33XX if AM33XX || SOC_DA8XX
|
|
default BOOTCOUNT_GENERIC
|
|
|
|
config BOOTCOUNT_GENERIC
|
|
bool "Generic default boot counter"
|
|
help
|
|
Generic bootcount stored at SYS_BOOTCOUNT_ADDR.
|
|
|
|
SYS_BOOTCOUNT_ADDR:
|
|
Set to the address where the bootcount and bootcount magic
|
|
will be stored.
|
|
|
|
config BOOTCOUNT_FS
|
|
bool "Boot counter on a filesystem"
|
|
help
|
|
Add support for maintaining boot count in a file on a filesystem.
|
|
This requires that you have enabled write support for the filesystem
|
|
that will be used by the partition that you configure this feature
|
|
for.
|
|
|
|
config BOOTCOUNT_AM33XX
|
|
bool "Boot counter in AM33XX RTC IP block"
|
|
depends on AM33XX || SOC_DA8XX
|
|
select SPL_AM33XX_ENABLE_RTC32K_OSC if AM33XX
|
|
help
|
|
A bootcount driver for the RTC IP block found on many TI platforms.
|
|
This requires the RTC clocks, etc, to be enabled prior to use and
|
|
not all boards with this IP block on it will have the RTC in use.
|
|
|
|
config BOOTCOUNT_AM33XX_NVMEM
|
|
bool "Boot counter in AM33XX RTC IP block with upgrade_available flag"
|
|
depends on AM33XX
|
|
select SPL_AM33XX_ENABLE_RTC32K_OSC if AM33XX
|
|
help
|
|
Add support for maintaining bootcount,upgrade_available,
|
|
version and BOOTMAGIC in a AM33xx RTC IP block
|
|
scratch register2.
|
|
|
|
A bootcount driver for the RTC IP block found on many TI platforms.
|
|
This requires the RTC clocks, etc, to be enabled prior to use and
|
|
not all boards with this IP block on it will have the RTC in use.
|
|
|
|
If there is upgrade in software then "upgrade_available" is 1,
|
|
"bootcount" is incremented otherwise "upgrade_available" and
|
|
"bootcount" is always 0. So the Userspace Application must set
|
|
the "upgrade_available" and "bootcount" variable to 0, if a boot
|
|
was successfully.
|
|
|
|
config BOOTCOUNT_ENV
|
|
bool "Boot counter in environment"
|
|
help
|
|
If no softreset save registers are found on the hardware
|
|
"bootcount" is stored in the environment. To prevent a
|
|
saveenv on all reboots, the environment variable
|
|
"upgrade_available" is used. If "upgrade_available" is
|
|
0, "bootcount" is always 0. If "upgrade_available" is 1,
|
|
"bootcount" is incremented in the environment.
|
|
So the Userspace Application must set the "upgrade_available"
|
|
and "bootcount" variables to 0, if the system booted successfully.
|
|
|
|
config BOOTCOUNT_RAM
|
|
bool "Boot counter in RAM"
|
|
help
|
|
Store the bootcount in DRAM protected against bit errors
|
|
due to short power loss or holding a system in RESET.
|
|
|
|
config BOOTCOUNT_AT91
|
|
bool "Boot counter for Atmel AT91SAM9XE"
|
|
depends on AT91SAM9XE
|
|
|
|
config DM_BOOTCOUNT
|
|
bool "Boot counter in a device-model device"
|
|
help
|
|
Enables reading/writing the bootcount in a device-model based
|
|
backing store. If an entry in /chosen/u-boot,bootcount-device
|
|
exists, this will be the preferred bootcount device; otherwise
|
|
the first available bootcount device will be used.
|
|
|
|
endchoice
|
|
|
|
if DM_BOOTCOUNT
|
|
|
|
menu "Backing stores for device-model backed bootcount"
|
|
config DM_BOOTCOUNT_RTC
|
|
bool "Support RTC devices as a backing store for bootcount"
|
|
depends on DM_RTC
|
|
help
|
|
Enabled reading/writing the bootcount in a DM RTC device.
|
|
The wrapper device is to be specified with the compatible string
|
|
'u-boot,bootcount-rtc' and the 'rtc'-property (a phandle pointing
|
|
to the underlying RTC device) and an optional 'offset' property
|
|
are supported.
|
|
|
|
Accesses to the backing store are performed using the write16
|
|
and read16 ops of DM RTC devices.
|
|
|
|
config DM_BOOTCOUNT_I2C
|
|
bool "Driver Model boot counter on I2C device"
|
|
depends on DM_I2C
|
|
help
|
|
Enable support for the bootcounter on a generic i2c device, like a RTC
|
|
or PMIC. The bootcounter is configured in the device tree using the
|
|
"u-boot,bootcount-i2c" compatible string. It requires a phandle
|
|
'i2cbcdev' for the i2c device and an 'offset' property used within the
|
|
device.
|
|
|
|
config DM_BOOTCOUNT_I2C_EEPROM
|
|
bool "Support i2c eeprom devices as a backing store for bootcount"
|
|
depends on I2C_EEPROM
|
|
help
|
|
Enabled reading/writing the bootcount in a DM i2c eeprom device.
|
|
The wrapper device is to be specified with the compatible string
|
|
'u-boot,bootcount-i2c-eeprom' and the 'i2c-eeprom'-property (a phandle
|
|
pointing to the underlying i2c eeprom device) and an optional 'offset'
|
|
property are supported.
|
|
|
|
config DM_BOOTCOUNT_PMIC_PFUZE100
|
|
bool "Enable Bootcount driver for PMIC PFUZE100"
|
|
depends on DM_PMIC_PFUZE100
|
|
help
|
|
Enable support for the bootcounter using PMIC PFUZE100 registers.
|
|
This works only, if the PMIC is not connected to a battery.
|
|
|
|
config DM_BOOTCOUNT_SPI_FLASH
|
|
bool "Support SPI flash devices as a backing store for bootcount"
|
|
depends on DM_SPI_FLASH
|
|
help
|
|
Enabled reading/writing the bootcount in a DM SPI flash device.
|
|
The wrapper device is to be specified with the compatible string
|
|
'u-boot,bootcount-spi-flash' and the 'spi-flash'-property (a phandle
|
|
pointing to the underlying SPI flash device) and an optional 'offset'
|
|
property are supported.
|
|
|
|
config BOOTCOUNT_MEM
|
|
bool "Support memory based bootcounter"
|
|
help
|
|
Enabling Memory based bootcount, typically in a SoC register which
|
|
is not cleared on softreset.
|
|
compatible = "u-boot,bootcount";
|
|
|
|
config DM_BOOTCOUNT_SYSCON
|
|
bool "Support SYSCON devices as a backing store for bootcount"
|
|
select REGMAP
|
|
select SYSCON
|
|
help
|
|
Enable reading/writing the bootcount value in a DM SYSCON device.
|
|
The driver supports a fixed 32 bits size register using the native
|
|
endianness. However, this can be controlled from the SYSCON DT node
|
|
configuration.
|
|
|
|
Accessing the backend is done using the regmap interface.
|
|
|
|
config DM_BOOTCOUNT_ZYNQMP
|
|
bool "Support ZynqMP PMUFW as a backing store for bootcount"
|
|
depends on ARCH_ZYNQMP
|
|
help
|
|
Enable support for the bootcount API by utilising the Persistent
|
|
Global General Storage Register 2 of the PMU.
|
|
|
|
endmenu
|
|
|
|
endif
|
|
|
|
config BOOTCOUNT_BOOTLIMIT
|
|
int "Maximum number of reboot cycles allowed"
|
|
default 0
|
|
help
|
|
Set the Maximum number of reboot cycles allowed without the boot
|
|
counter being cleared.
|
|
If set to 0, do not set a boot limit in the environment.
|
|
|
|
config BOOTCOUNT_ALTBOOTCMD
|
|
string "Alternative boot command when BOOTLIMIT is reached"
|
|
|
|
config SYS_BOOTCOUNT_SINGLEWORD
|
|
bool "Use single word to pack boot count and magic value"
|
|
depends on BOOTCOUNT_GENERIC
|
|
help
|
|
This option enables packing boot count magic value and boot count
|
|
into single word (32 bits).
|
|
|
|
config SYS_BOOTCOUNT_FS_INTERFACE
|
|
string "Interface on which to find boot counter filesystem"
|
|
default "mmc"
|
|
depends on BOOTCOUNT_FS
|
|
help
|
|
Set the interface to use when locating the filesystem to use for the
|
|
boot counter.
|
|
|
|
config SYS_BOOTCOUNT_FS_DEVPART
|
|
string "Partition of the boot counter filesystem"
|
|
default "0:1"
|
|
depends on BOOTCOUNT_FS
|
|
help
|
|
Set the partition to use when locating the filesystem to use for the
|
|
boot counter.
|
|
|
|
config SYS_BOOTCOUNT_FS_NAME
|
|
string "Path and filename of the FS filesystem based boot counter"
|
|
default "/boot/failures"
|
|
depends on BOOTCOUNT_FS
|
|
help
|
|
Set the filename and path of the file used to store the boot counter.
|
|
|
|
config SYS_BOOTCOUNT_ADDR
|
|
hex "RAM address used for reading and writing the boot counter"
|
|
default 0x44E3E000 if BOOTCOUNT_AM33XX || BOOTCOUNT_AM33XX_NVMEM
|
|
default 0xE0115FF8 if ARCH_LS1043A || ARCH_LS1021A
|
|
depends on BOOTCOUNT_AM33XX || BOOTCOUNT_GENERIC || BOOTCOUNT_FS || \
|
|
BOOTCOUNT_AM33XX_NVMEM
|
|
help
|
|
Set the address used for reading and writing the boot counter.
|
|
|
|
config SYS_BOOTCOUNT_MAGIC
|
|
hex "Magic value for the boot counter"
|
|
default 0xB001C041 if BOOTCOUNT_GENERIC || BOOTCOUNT_FS || \
|
|
BOOTCOUNT_AM33XX || BOOTCOUNT_ENV || \
|
|
BOOTCOUNT_RAM || BOOTCOUNT_AT91 || DM_BOOTCOUNT
|
|
default 0xB0 if BOOTCOUNT_AM33XX_NVMEM
|
|
depends on BOOTCOUNT_GENERIC || BOOTCOUNT_FS || \
|
|
BOOTCOUNT_AM33XX || BOOTCOUNT_ENV || \
|
|
BOOTCOUNT_RAM || BOOTCOUNT_AT91 || DM_BOOTCOUNT || \
|
|
BOOTCOUNT_AM33XX_NVMEM
|
|
help
|
|
Set the magic value used for the boot counter.
|
|
|
|
choice
|
|
prompt "Endianness of bootcount accessors"
|
|
default SYS_BOOTCOUNT_LE
|
|
|
|
config SYS_BOOTCOUNT_LE
|
|
bool "Little endian accessors"
|
|
|
|
config SYS_BOOTCOUNT_BE
|
|
bool "Big endian accessors"
|
|
|
|
endchoice
|
|
endif
|