]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - drivers/bootcount/Kconfig
bootcount: Migrate CONFIG_SYS_BOOTCOUNT_ADDR
[people/ms/u-boot.git] / drivers / bootcount / Kconfig
index cb6be73d522114ec1e0a8959e08be64efa7e5501..73972b7f9c375363feb71a7afdf73fb0b9841842 100644 (file)
@@ -2,22 +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
 
-if BOOTCOUNT
+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_EXT
        bool "Boot counter on EXT filesystem"
@@ -25,7 +31,60 @@ 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
+       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
+
+endchoice
+
+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"
@@ -52,13 +111,11 @@ 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
-
-endif
-
-endmenu