Merge tag 'u-boot-stm32-20200424' of https://gitlab.denx.de/u-boot/custodians/u-boot-stm
[oweals/u-boot.git] / drivers / bootcount / Kconfig
index 8c19ae610bb3493a9da6b49dcc41c7c6cd456e15..0356f8ba1815edfe01dba33ad2229019aea2adfd 100644 (file)
@@ -13,6 +13,17 @@ 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"
@@ -23,6 +34,7 @@ config 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
@@ -53,12 +65,77 @@ config BOOTCOUNT_I2C
          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
+
+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).
@@ -88,9 +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.
 
+config SYS_BOOTCOUNT_MAGIC
+       hex "Magic value for the boot counter"
+       default 0xB001C041
+       help
+         Set the magic value used for the boot counter.
+
 endif