#
# Boot count configuration
#

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_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_FS
	bool "Boot counter on a filesystem"
	help
	  Add support for maintaining boot count in a file on a filesystem.
	  This requires that you have enabled write support for the filesystem
	  that will be used by the partition that you configure this feature
	  for.

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
	  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
	  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" variables to 0, if the system booted successfully.

config BOOTCOUNT_RAM
	bool "Boot counter in RAM"
	help
	  Store the bootcount in DRAM protected against bit errors
	  due to short power loss or holding a system in RESET.

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
	bool "Driver Model boot counter on I2C device"
	depends on DM_I2C
	help
	  Enable support for the bootcounter on a generic i2c device, like a RTC
	  or PMIC. The bootcounter is configured in the device tree using the
	  "u-boot,bootcount-i2c" compatible string. It requires a phandle
	  'i2cbcdev' for the i2c device and an 'offset' property used within the
	  device.

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 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 to a battery.

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
	  Enabling Memory based bootcount, typically in a SoC register which
	  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

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 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_FS_INTERFACE
	string "Interface on which to find boot counter filesystem"
	default "mmc"
	depends on BOOTCOUNT_FS
	help
	  Set the interface to use when locating the filesystem to use for the
	  boot counter.

config SYS_BOOTCOUNT_FS_DEVPART
	string "Partition of the boot counter filesystem"
	default "0:1"
	depends on BOOTCOUNT_FS
	help
	  Set the partition to use when locating the filesystem to use for the
	  boot counter.

config SYS_BOOTCOUNT_FS_NAME
	string "Path and filename of the FS filesystem based boot counter"
	default "/boot/failures"
	depends on BOOTCOUNT_FS
	help
	  Set the filename and path of the file used to store the boot counter.

config SYS_BOOTCOUNT_ADDR
	hex "RAM address used for reading and writing the boot counter"
	default 0x44E3E000 if BOOTCOUNT_AM33XX || BOOTCOUNT_AM33XX_NVMEM
	default 0xE0115FF8 if ARCH_LS1043A || ARCH_LS1021A
	depends on BOOTCOUNT_AM33XX || BOOTCOUNT_GENERIC || BOOTCOUNT_FS || \
		   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 if BOOTCOUNT_GENERIC || BOOTCOUNT_FS || \
			      BOOTCOUNT_AM33XX || BOOTCOUNT_ENV || \
			      BOOTCOUNT_RAM || BOOTCOUNT_AT91 || DM_BOOTCOUNT
	default 0xB0 if BOOTCOUNT_AM33XX_NVMEM
	depends on BOOTCOUNT_GENERIC || BOOTCOUNT_FS || \
		   BOOTCOUNT_AM33XX || BOOTCOUNT_ENV || \
		   BOOTCOUNT_RAM || BOOTCOUNT_AT91 || DM_BOOTCOUNT || \
		   BOOTCOUNT_AM33XX_NVMEM
	help
	  Set the magic value used for the boot counter.

choice
	prompt "Endianness of bootcount accessors"
	default SYS_BOOTCOUNT_LE

config SYS_BOOTCOUNT_LE
	bool "Little endian accessors"

config SYS_BOOTCOUNT_BE
	bool "Big endian accessors"

endchoice
endif
