Boot Linux faster!

Check our new training course

Boot Linux faster!

Check our new training course
and Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

# Copyright (c) 2019 Bolt Innovation Management, LLC
# Copyright (c) 2019 Peter Bigot Consulting, LLC
# Copyright (c) 2020 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

config FILE_SYSTEM_LITTLEFS
	bool "LittleFS support"
	depends on FILE_SYSTEM
	depends on FLASH_MAP
	depends on FLASH_PAGE_LAYOUT
	help
	  Enables LittleFS file system support.

if FILE_SYSTEM_LITTLEFS

menu "LittleFS Settings"
	visible if FILE_SYSTEM_LITTLEFS

config FS_LITTLEFS_NUM_FILES
	int "Maximum number of opened files"
	default 4
	help
	  This is a global maximum across all mounted littlefs filesystems.

config FS_LITTLEFS_NUM_DIRS
	int "Maximum number of opened directories"
	default 4
	help
	  This is a global maximum across all mounted littlefs filesystems.

config FS_LITTLEFS_READ_SIZE
	int "Minimum size of a block read"
	default 16
	help
	  All read operations will be a multiple of this value.

config FS_LITTLEFS_PROG_SIZE
	int "Minimum size of a block program"
	default 16
	help
	  All program operations will be a multiple of this value.

config FS_LITTLEFS_CACHE_SIZE
	int "Size of block caches in bytes"
	default 64
	help
	  Each cache buffers a portion of a block in RAM.  The littlefs
	  needs a read cache, a program cache, and one additional cache
	  per file. Larger caches can improve performance by storing
	  more data and reducing the number of disk accesses. Must be a
	  multiple of the read and program sizes of the underlying flash
	  device, and a factor of the block size.

config FS_LITTLEFS_LOOKAHEAD_SIZE
	int "Size of lookahead buffer in bytes"
	default 32
	help
	  A larger lookahead buffer increases the number of blocks found
	  during an allocation pass. The lookahead buffer is stored as a
	  compact bitmap, so each byte of RAM can track 8 blocks. Must
	  be a multiple of 8.

config FS_LITTLEFS_BLOCK_CYCLES
	int "Number of erase cycles before moving data to another block"
	default 512
	help
	  For dynamic wear leveling, the number of erase cycles before data
	  is moved to another block.  Set to a non-positive value to
	  disable leveling.

menuconfig FS_LITTLEFS_FC_MEM_POOL
	bool "Enable flexible file cache sizes for littlefs (DEPRECATED)"
	help
	  littlefs requires a per-file buffer to cache data.  For
	  applications that use the default configuration parameters a
	  memory slab is reserved to support up to
	  FS_LITTLE_FS_NUM_FILES blocks of FS_LITTLEFS_CACHE_SIZE bytes.

	  When applications customize littlefs configurations and
	  support different cache sizes for different partitions this
	  preallocation is inadequate.

	  This API is no longer approprate as the underlying storage solution
	  has been deprecated.  Instead use FS_LITTLEFS_FC_HEAP_SIZE to
	  configure the size of a heap used to allocate caches for open files.

# This option deprecated in 2.5.0
if FS_LITTLEFS_FC_MEM_POOL

config FS_LITTLEFS_FC_MEM_POOL_MIN_SIZE
	int "(DEPRECATED)"
	default 16
	help
	  This API is no longer approprate as the underlying storage
	  solution has been deprecated.  Instead use
	  FS_LITTLEFS_FC_HEAP to configure the size of a heap used to
	  allocate caches for open files.

config FS_LITTLEFS_FC_MEM_POOL_MAX_SIZE
	int "Block size for littlefs file cache heap (DEPRECATED)"
	default 1024
	help
	  A heap for file cache data is sized so that
	  FS_LITTLEFS_FC_MEM_POOL_NUM_BLOCKS allocations of size
	  FS_LITTLEFS_MEM_POOL_MAX_SIZE can be active simultaneously.

	  This option configures the size.

	  This API is no longer approprate as the underlying storage solution
	  has been deprecated.  Instead use FS_LITTLEFS_FC_HEAP to configure
	  the size of a heap used to allocate caches for open files.

config FS_LITTLEFS_FC_MEM_POOL_NUM_BLOCKS
	int "Number of maximum sized blocks in littlefs file cache heap (DEPRECATED)"
	default 2
	help
	  A heap for file cache data is sized so that
	  FS_LITTLEFS_FC_MEM_POOL_NUM_BLOCKS allocations of size
	  FS_LITTLEFS_MEM_POOL_MAX_SIZE can be active simultaneously.

	  This option configures the total heap size based on the
	  block size.

	  This API is no longer approprate as the underlying storage solution
	  has been deprecated.  Instead use FS_LITTLEFS_FC_HEAP to configure
	  the size of a heap used to allocate caches for open files.

endif # FS_LITTLEFS_FC_MEM_POOL

endmenu # FS_LITTLEFS_FC_MEM_POOL

config FS_LITTLEFS_FC_HEAP_SIZE
	int "Enable flexible file cache sizes for littlefs"
	default 0
	help
	  littlefs requires a per-file buffer to cache data.

	  When applications customize littlefs configurations and support
	  different cache sizes for different partitions this preallocation is
	  inadequate as an application might require a small number of files
	  using a large cache size and a larger number of files using a
	  smaller cache size.  In that case application should provide a
	  positive value for the heap size.  Be aware that there is a
	  per-allocation overhead that affects how much usable space is
	  present in the heap.

	  If this option is set to a non-positive value the heap is sized to
	  support up to FS_LITTLE_FS_NUM_FILES blocks of
	  FS_LITTLEFS_CACHE_SIZE bytes.  Until FS_LITTLEFS_FC_MEM_POOL is
	  removed presence of that option changes the default to support
	  FS_LITTLEFS_FC_MEM_POOL_NUM_BLOCKS allocations of size
	  FS_LITTLEFS_MEM_POOL_MAX_SIZE

endif # FILE_SYSTEM_LITTLEFS