X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=drivers%2Fbootcount%2FKconfig;h=0356f8ba1815edfe01dba33ad2229019aea2adfd;hb=4d131cdb6762694fc1a66d6b3e39a82f9ec691cf;hp=d82289f57b7ae5cf67160ad6e74924d78a212d7e;hpb=fee626c4498b032c19cadc2633cea40badc74625;p=oweals%2Fu-boot.git diff --git a/drivers/bootcount/Kconfig b/drivers/bootcount/Kconfig index d82289f57b..0356f8ba18 100644 --- a/drivers/bootcount/Kconfig +++ b/drivers/bootcount/Kconfig @@ -2,28 +2,28 @@ # Boot count configuration # -menu "Boot count support" - -config BOOTCOUNT - bool "Enable Boot count support" - help - Enable boot count support, which provides the ability to store the - number of times the board has booted on a number of different - persistent storage mediums. - -config BOOTCOUNT_LIMIT +menuconfig BOOTCOUNT_LIMIT bool "Enable support for checking boot count limit" help Enable checking for exceeding the boot count limit. More information: http://www.denx.de/wiki/DULG/UBootBootCountLimit -config SYS_BOOTCOUNT_SINGLEWORD - bool "Use single word to pack boot count and magic value" +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 - This option enables packing boot count magic value and boot count - into single word (32 bits). + Generic bootcount stored at SYS_BOOTCOUNT_ADDR. -if BOOTCOUNT + SYS_BOOTCOUNT_ADDR: + Set to the address where the bootcount and bootcount magic + will be stored. config BOOTCOUNT_EXT bool "Boot counter on EXT filesystem" @@ -31,7 +31,114 @@ config BOOTCOUNT_EXT Add support for maintaining boot count in a file on an EXT filesystem. -if BOOTCOUNT_EXT +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_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" variable to 0, if a boot was successfully. + +config BOOTCOUNT_RAM + bool "Boot counter in RAM" + help + Store the bootcount in DRAM protected against against bit errors + due to short power loss or holding a system in RESET. + +config BOOTCOUNT_I2C + bool "Boot counter on I2C device" + help + Enable support for the bootcounter on an i2c (like RTC) device. + CONFIG_SYS_I2C_RTC_ADDR = i2c chip address + CONFIG_SYS_BOOTCOUNT_ADDR = i2c addr which is used for + the bootcounter. + +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_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 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"; + +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_ALEN + int "I2C address length" + default 1 + depends on BOOTCOUNT_I2C + help + Length of the the I2C address at SYS_BOOTCOUNT_ADDR for storing + the boot counter. + +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_EXT_INTERFACE string "Interface on which to find boot counter EXT filesystem" @@ -58,13 +165,17 @@ config SYS_BOOTCOUNT_EXT_NAME config SYS_BOOTCOUNT_ADDR hex "RAM address used for reading and writing the boot counter" - default 0x7000A000 - depends on BOOTCOUNT_EXT + default 0x44E3E000 if BOOTCOUNT_AM33XX + default 0xE0115FF8 if ARCH_LS1043A || ARCH_LS1021A + depends on BOOTCOUNT_AM33XX || BOOTCOUNT_GENERIC || BOOTCOUNT_EXT || \ + BOOTCOUNT_I2C help Set the address used for reading and writing the boot counter. -endif +config SYS_BOOTCOUNT_MAGIC + hex "Magic value for the boot counter" + default 0xB001C041 + help + Set the magic value used for the boot counter. endif - -endmenu