Merge tag 'efi-2020-07-rc4' of https://gitlab.denx.de/u-boot/custodians/u-boot-efi
[oweals/u-boot.git] / drivers / bootcount / Kconfig
index 9fde2f2a6609c1f168e3e562a60af604e1f561b2..c8e6fa7f892501b6b615e419310df92616684362 100644 (file)
@@ -27,6 +27,8 @@ config BOOTCOUNT_GENERIC
 
 config BOOTCOUNT_EXT
        bool "Boot counter on EXT filesystem"
+       depends on FS_EXT4
+       select EXT4_WRITE
        help
          Add support for maintaining boot count in a file on an EXT
          filesystem.
@@ -34,6 +36,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
@@ -64,14 +67,74 @@ 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
@@ -104,9 +167,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