blob: e659a7b957c22792858bd737c58d1aba3590060a [file] [log] [blame]
# 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
depends on ZEPHYR_LITTLEFS_MODULE
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.
endmenu
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.
if FS_LITTLEFS_FC_HEAP_SIZE <= 0
config FS_LITTLEFS_HEAP_PER_ALLOC_OVERHEAD_SIZE
int "Size of per-allocation overhead for littleFS heap in bytes"
default 32
help
In case when total size of littleFS heap is automatically calculated
we need to take into account overhead caused per block allocation.
For the purpose of heap size calculation the size of each cache block
will be increased by this value.
NOTE: when your app fails to open pre-defined number of files, as set
by FS_LITTLEFS_NUM_FILES, try to increase the value.
endif # FS_LITTLEFS_FC_HEAP_SIZE <= 0
config FS_LITTLEFS_BLK_DEV
bool "Support for littlefs on block devices"
help
Enable this option to provide support for littlefs on the block
devices (like for example SD card).
endif # FILE_SYSTEM_LITTLEFS