| # |
| # 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_AT91 if AT91SAM9XE |
| 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. |
| |
| 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 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 |