Migrate generic bootcount to Kconfig
[people/ms/u-boot.git] / drivers / bootcount / Kconfig
index c9d627c..9fde2f2 100644 (file)
@@ -2,16 +2,28 @@
 # Boot count configuration
 #
 
-menu "Boot count support"
+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_LIMIT
+
+choice
+       prompt "Boot count device"
+       default BOOTCOUNT_AM33XX if AM33XX || SOC_DA8XX
+       default BOOTCOUNT_AT91 if AT91SAM9XE
+       default BOOTCOUNT_GENERIC
 
-config BOOTCOUNT
-       bool "Enable Boot count support"
+config BOOTCOUNT_GENERIC
+       bool "Generic default boot counter"
        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.
+         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"
@@ -19,7 +31,53 @@ 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_ALEN = address len
+
+config BOOTCOUNT_AT91
+       bool "Boot counter for Atmel AT91SAM9XE"
+       depends on AT91SAM9XE
+
+endchoice
+
+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,7 +110,3 @@ config SYS_BOOTCOUNT_ADDR
          Set the address used for reading and writing the boot counter.
 
 endif
-
-endif
-
-endmenu