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

menu "Disk"

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

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

config SYS_LOG_DISK_LEVEL
	int "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 "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 "Flash mount point or drive name"
	default "NAND"
	help
	  Disk name as per file system naming guidelines.

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

config DISK_FLASH_START
	hex "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 "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 "Flash device erase alignment in hex"
	help
	  This is the start address alignment required by
	  the flash component.

config DISK_ERASE_BLOCK_SIZE
	hex "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 "Flash device volume size in hex"
	help
	  This is the file system volume size in bytes.

endif # DISK_ACCESS_FLASH
endmenu
