| # 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 |