#
# Copyright (c) 2016 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#

menu "Disk"

config DISK_ACCESS
	bool
	default n
	prompt "Enable Disk Interface"
	help
	  Enable disk access over a supported media backend like FLASH or RAM

config DISK_ACCESS_MAX_VOLUMES
	int
	default 8
	prompt "Maximum Disk Interfaces"
	help
	  Maximum number of disk access interfaces supported

config SYS_LOG_DISK_LEVEL
	int
	prompt "Disk log level"
	depends on SYS_LOG
	default 0
	help
	  Sets log level for Disk drivers.
	  Levels are:
	  - 0 OFF, do not write
	  - 1 ERROR, only write SYS_LOG_ERR
	  - 2 WARNING, write SYS_LOG_WRN in addition to previous level
	  - 3 INFO, write SYS_LOG_INF in addition to previous levels
	  - 4 DEBUG, write SYS_LOG_DBG in addition to previous levels

if DISK_ACCESS

config DISK_ACCESS_RAM
	bool "RAM Disk"
	help
	  RAM buffer used to emulate storage disk.
	  This option can be used to test the file
	  system.

config DISK_ACCESS_FLASH
	bool "Flash"
	select FLASH
	help
	  Flash device is used for the file system.

endif # DISK_ACCESS

if DISK_ACCESS_RAM

config DISK_RAM_VOLUME_NAME
	string
	prompt "RAM Disk mount point or drive name"
	default "RAM"
	help
	  Disk name as per file system naming guidelines.

endif # DISK_ACCESS_RAM

if DISK_ACCESS_FLASH

config DISK_FLASH_VOLUME_NAME
	string
	prompt "Flash mount point or drive name"
	default "NAND"
	help
	  Disk name as per file system naming guidelines.

config DISK_FLASH_DEV_NAME
	string
	prompt "Flash device name to be used as storage backend"

config DISK_FLASH_START
	hex
	prompt "Flash device start address in hex"
	help
	  This is start address of the flash to be used as storage backend.

config DISK_FLASH_MAX_RW_SIZE
	int
	prompt "Flash device max read-write size in decimal"
	help
	  This is the maximum number of bytes that the
	  flash_write API can accept per invocation.
	  API.

config DISK_FLASH_ERASE_ALIGNMENT
	hex
	prompt "Flash device erase alignment in hex"
	help
	  This is the start address alignment required by
	  the flash component.

config DISK_ERASE_BLOCK_SIZE
	hex
	prompt "Flash device erasable block size in hex"
	help
	  This is typically the minimum block size that
	  is erased at one time in flash storage.
	  Typically it is equal to the flash memory page size.

config DISK_VOLUME_SIZE
	hex
	prompt "Flash device volume size in hex"
	help
	  This is the file system volume size in bytes.

endif # DISK_ACCESS_FLASH
endmenu
