# Flash map abstraction module

# Copyright (c) 2017 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

#
# Flash map
#

menuconfig FLASH_MAP
	bool "Flash map abstraction module"
	depends on FLASH_HAS_DRIVER_ENABLED
	help
	  Enable support of flash map abstraction.

if FLASH_MAP

config FLASH_MAP_SHELL
	bool "Flash map shell interface"
	depends on SHELL
	imply FLASH_MAP_LABELS
	help
	  This enables shell commands to list and test flash maps.

config FLASH_MAP_CUSTOM
	bool "Custom flash map description"
	help
	  This option enables custom flash map description.
	  User must provide such a description in place of default on
	  if had enabled this option.

config FLASH_AREA_CHECK_INTEGRITY
	bool "Flash check functions"
	help
	  If enabled, there will be available the backend to check flash
	  integrity using SHA-256 verification algorithm.

config FLASH_MAP_LABELS
	bool "Access flash area labels at runtime"
	help
	  If enabled the label property of the flash map can be retrieved
	  at runtime. The available labels will also be displayed in the
	  flash_map list shell command.

if FLASH_AREA_CHECK_INTEGRITY

choice FLASH_AREA_CHECK_INTEGRITY_BACKEND
	prompt "Crypto backend for the flash check functions"
	default FLASH_AREA_CHECK_INTEGRITY_PSA

config FLASH_AREA_CHECK_INTEGRITY_PSA
	bool "Use PSA"
	select PSA_WANT_ALG_SHA_256
	select PSA_CRYPTO
	help
	  Use the PSA API to perform the integrity check.

config FLASH_AREA_CHECK_INTEGRITY_MBEDTLS
	bool "Use Mbed TLS [DEPRECATED]"
	select MBEDTLS
	select MBEDTLS_SHA256
	select DEPRECATED
	help
	  Use the Mbed TLS library to perform the integrity check.

endchoice

endif # FLASH_AREA_CHECK_INTEGRITY

endif
