#
# 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 "File System 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 block size in hex"
	help
	  This is typically the minimum block size that
	  is erased at one time in flash storage.

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

endif # DISK_ACCESS_FLASH
endmenu
