Merge tag 'v2022.04-rc5' into next
[platform/kernel/u-boot.git] / drivers / bootcount / Kconfig
index 0356f8b..66ce4cc 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.
@@ -40,6 +42,25 @@ config BOOTCOUNT_AM33XX
          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_AM33XX_NVMEM
+       bool "Boot counter in AM33XX RTC IP block with upgrade_available flag"
+       depends on AM33XX
+        select SPL_AM33XX_ENABLE_RTC32K_OSC if AM33XX
+       help
+         Add support for maintaining bootcount,upgrade_available,
+         version and BOOTMAGIC in a AM33xx RTC IP block
+         scratch register2.
+
+         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.
+
+         If there is upgrade in software then "upgrade_available" is 1,
+         "bootcount" is incremented otherwise "upgrade_available" and
+         "bootcount" is  always 0. So the Userspace Application must set
+         the "upgrade_available" and "bootcount" variable to 0, if a boot
+         was successfully.
+
 config BOOTCOUNT_ENV
        bool "Boot counter in environment"
        help
@@ -47,15 +68,15 @@ config BOOTCOUNT_ENV
          "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.
+         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.
+         and "bootcount" variables to 0, if the system booted successfully.
 
 config BOOTCOUNT_RAM
        bool "Boot counter in RAM"
        help
-         Store the bootcount in DRAM protected against against bit errors
+         Store the bootcount in DRAM protected against bit errors
          due to short power loss or holding a system in RESET.
 
 config BOOTCOUNT_I2C
@@ -106,6 +127,23 @@ config DM_BOOTCOUNT_I2C_EEPROM
          pointing to the underlying i2c eeprom device) and an optional 'offset'
          property are supported.
 
+config DM_BOOTCOUNT_PMIC_PFUZE100
+       bool "Enable Bootcount driver for PMIC PFUZE100"
+       depends on DM_PMIC_PFUZE100
+       help
+         Enable support for the bootcounter using PMIC PFUZE100 registers.
+         This works only, if the PMIC is not connected.
+
+config DM_BOOTCOUNT_SPI_FLASH
+       bool "Support SPI flash devices as a backing store for bootcount"
+       depends on DM_SPI_FLASH
+       help
+         Enabled reading/writing the bootcount in a DM SPI flash device.
+         The wrapper device is to be specified with the compatible string
+         'u-boot,bootcount-spi-flash' and the 'spi-flash'-property (a phandle
+         pointing to the underlying SPI flash device) and an optional 'offset'
+         property are supported.
+
 config BOOTCOUNT_MEM
        bool "Support memory based bootcounter"
        help
@@ -113,6 +151,18 @@ config BOOTCOUNT_MEM
          is not cleared on softreset.
          compatible = "u-boot,bootcount";
 
+config DM_BOOTCOUNT_SYSCON
+       bool "Support SYSCON devices as a backing store for bootcount"
+       select REGMAP
+       select SYSCON
+       help
+         Enable reading/writing the bootcount value in a DM SYSCON device.
+         The driver supports a fixed 32 bits size register using the native
+         endianness. However, this can be controlled from the SYSCON DT node
+         configuration.
+
+         Accessing the backend is done using the regmap interface.
+
 endmenu
 
 endif
@@ -123,7 +173,7 @@ config BOOTCOUNT_BOOTLIMIT
        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.
+         If set to 0, do not set a boot limit in the environment.
 
 config BOOTCOUNT_ALEN
        int "I2C address length"
@@ -165,16 +215,25 @@ config SYS_BOOTCOUNT_EXT_NAME
 
 config SYS_BOOTCOUNT_ADDR
        hex "RAM address used for reading and writing the boot counter"
-       default 0x44E3E000 if BOOTCOUNT_AM33XX
+       default 0x44E3E000 if BOOTCOUNT_AM33XX || BOOTCOUNT_AM33XX_NVMEM
        default 0xE0115FF8 if ARCH_LS1043A || ARCH_LS1021A
        depends on BOOTCOUNT_AM33XX || BOOTCOUNT_GENERIC || BOOTCOUNT_EXT || \
-                  BOOTCOUNT_I2C
+                  BOOTCOUNT_I2C || BOOTCOUNT_AM33XX_NVMEM
        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
+       default 0xB001C041 if BOOTCOUNT_GENERIC || BOOTCOUNT_EXT || \
+                             BOOTCOUNT_AM33XX || BOOTCOUNT_ENV || \
+                             BOOTCOUNT_RAM || BOOTCOUNT_I2C || \
+                             BOOTCOUNT_AT91 || DM_BOOTCOUNT
+       default 0xB0 if BOOTCOUNT_AM33XX_NVMEM
+       depends on BOOTCOUNT_GENERIC || BOOTCOUNT_EXT || \
+                  BOOTCOUNT_AM33XX || BOOTCOUNT_ENV || \
+                  BOOTCOUNT_RAM || BOOTCOUNT_I2C || \
+                  BOOTCOUNT_AT91 || DM_BOOTCOUNT || \
+                  BOOTCOUNT_AM33XX_NVMEM
        help
          Set the magic value used for the boot counter.