-
-
Notifications
You must be signed in to change notification settings - Fork 98
/
Kconfig
258 lines (215 loc) · 9.88 KB
/
Kconfig
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
menu "LittleFS"
config LITTLEFS_SDMMC_SUPPORT
bool "SDMMC support (requires ESP-IDF v5+)"
default n
help
Toggle SD card support
This requires IDF v5+ as older ESP-IDF do not support SD card erase.
config LITTLEFS_MAX_PARTITIONS
int "Maximum Number of Partitions"
default 3
range 1 10
help
Define maximum number of partitions that can be mounted.
config LITTLEFS_PAGE_SIZE
int "LITTLEFS logical page size"
default 256
range 256 1024
help
Logical page size of LITTLEFS partition, in bytes. Must be multiple
of flash page size (which is usually 256 bytes).
Larger page sizes reduce overhead when storing large files, and
improve filesystem performance when reading large files.
Smaller page sizes reduce overhead when storing small (< page size)
files.
config LITTLEFS_OBJ_NAME_LEN
int "Maximum object name length including NULL terminator."
default 64
range 16 1022
help
Includes NULL-terminator. If flashing a prebuilt filesystem image,
rebuild the filesystem image if this value changes.
mklittlefs, the tool that generates the image will automatically be rebuilt.
If downloading a pre-built release of mklittlefs, it was most-likely
built with LFS_NAME_MAX=32 and should not be used.
config LITTLEFS_READ_SIZE
int "Minimum size of a block read."
default 128
help
Minimum size of a block read. All read operations will be a
multiple of this value.
config LITTLEFS_WRITE_SIZE
int "Minimum size of a block write."
default 128
help
Minimum size of a block program. All write operations will be a
multiple of this value.
config LITTLEFS_LOOKAHEAD_SIZE
int "Look ahead size."
default 128
help
Look ahead size. Must be a multiple of 8.
config LITTLEFS_CACHE_SIZE
int "Cache Size"
default 512
help
Size of block caches. 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, and a factor of the block size (4096).
config LITTLEFS_BLOCK_CYCLES
int "LittleFS wear-leveling block cycles"
default 512
range -1 1024
help
Number of erase cycles before littlefs evicts metadata logs and moves
the metadata to another block. Suggested values are in the
range 100-1000, with large values having better performance at the cost
of less consistent wear distribution.
Set to -1 to disable block-level wear-leveling.
config LITTLEFS_USE_MTIME
bool "Save file modification time"
default "y"
help
Saves timestamp on modification. Uses an additional 4bytes.
config LITTLEFS_USE_ONLY_HASH
bool "Don't store filepath in the file descriptor"
default "n"
help
Records the filepath only as a 32-bit hash in the file descriptor instead
of the entire filepath. Saves approximately `sizeof(filepath)` bytes
per file descriptor.
If enabled, functionality (like fstat) that requires the file path
from the file descriptor will not work.
In rare cases, may cause unlinking or renaming issues (unlikely) if
there's a hash collision between an open filepath and a filepath
to be modified.
config LITTLEFS_HUMAN_READABLE
bool "Make errno human-readable"
default "n"
help
Converts LittleFS error codes into human readable strings.
May increase binary size depending on logging level.
choice LITTLEFS_MTIME
prompt "mtime attribute options"
depends on LITTLEFS_USE_MTIME
default LITTLEFS_MTIME_USE_SECONDS
help
Save an additional 4-byte attribute. Options listed below.
config LITTLEFS_MTIME_USE_SECONDS
bool "Use Seconds"
help
Saves timestamp on modification.
config LITTLEFS_MTIME_USE_NONCE
bool "Use Nonce"
help
Saves nonce on modification; intended for detecting filechanges
on systems without access to a RTC.
A file who's nonce is the same as it was at a previous time has
high probability of not having been modified.
Upon file modification, the nonce is incremented by one. Upon file
creation, a random nonce is assigned.
There is a very slim chance that a file will have the same nonce if
it is deleted and created again (approx 1 in 4 billion).
endchoice
config LITTLEFS_SPIFFS_COMPAT
bool "Improve SPIFFS drop-in compatability"
default "n"
help
Enabling this feature allows for greater drop-in compatability
when replacing SPIFFS. Since SPIFFS doesn't have folders, and
folders are just considered as part of a file name, enabling this
will automatically create folders as necessary to create a file
instead of throwing an error. Similarly, upon the deletion of the
last file in a folder, the folder will be deleted. It is recommended
to only enable this flag as a stop-gap solution.
config LITTLEFS_FLUSH_FILE_EVERY_WRITE
bool "Flush file to flash after each write operation"
default "n"
help
Enabling this feature extends SPIFFS capability.
In SPIFFS data is written immediately to the flash storage when fflush() function called.
In LittleFS flush() does not write data to the flash, and fsync() call needed after.
With this feature fflush() will write data to the storage.
config LITTLEFS_OPEN_DIR
bool "Support opening directory"
default "n"
depends on !LITTLEFS_USE_ONLY_HASH && LITTLEFS_SPIFFS_COMPAT
help
Support opening directory by following APIs:
int fd = open("my_directory", O_DIRECTORY);
config LITTLEFS_FCNTL_GET_PATH
bool "Support get file or directory path"
default "n"
depends on !LITTLEFS_USE_ONLY_HASH
help
Support getting directory by following APIs:
char buffer[MAXPATHLEN];
int fd = open("my_file", flags);
fcntl(fd, F_GETPATH, buffer);
config LITTLEFS_FCNTL_F_GETPATH_VALUE
int "Value of command F_GETPATH"
default 20
depends on LITTLEFS_FCNTL_GET_PATH
help
ESP-IDF's header file "fcntl.h" doesn't support macro "F_GETPATH",
so we should define this macro here.
config LITTLEFS_MULTIVERSION
bool "Support selecting the LittleFS minor version to write to disk"
default "n"
help
LittleFS 2.6 bumps the on-disk minor version of littlefs from lfs2.0 -> lfs2.1.
This change is backwards-compatible, but after the first write with the new version,
the image on disk will no longer be mountable by older versions of littlefs.
Enabling LITTLEFS_MULTIVERSION allows to select the On-disk version
to use when writing in the form of 16-bit major version
+ 16-bit minor version. This limiting metadata to what is supported by
older minor versions. Note that some features will be lost. Defaults to
to the most recent minor version when zero.
choice LITTLEFS_DISK_VERSION
prompt "LITTLEFS_DISK_VERSION"
depends on LITTLEFS_MULTIVERSION
default LITTLEFS_DISK_VERSION_MOST_RECENT
help
See LITTLEFS_MULTIVERSION for details.
config LITTLEFS_DISK_VERSION_MOST_RECENT
bool "Write the most recent LittleFS version"
config LITTLEFS_DISK_VERSION_2_1
bool "Write LittleFS 2.1"
config LITTLEFS_DISK_VERSION_2_0
bool "Write LittleFS 2.0 (no forward-looking erase-state CRCs)"
endchoice
choice LITTLEFS_MALLOC_STRATEGY
prompt "Buffer allocation strategy"
default LITTLEFS_MALLOC_STRATEGY_DEFAULT
help
Maps lfs_malloc to ESP-IDF capabilities-based memory allocator or
disables dynamic allocation in favour of user-provided static buffers.
config LITTLEFS_MALLOC_STRATEGY_DISABLE
bool "Static buffers only"
help
Disallow dynamic allocation, static buffers must be provided by the calling application.
config LITTLEFS_MALLOC_STRATEGY_DEFAULT
bool "Default heap selection"
help
Uses an automatic allocation strategy. On systems with heap in SPIRAM, if
the allocation size does not exceed SPIRAM_MALLOC_ALWAYSINTERNAL then internal
heap allocation if preferred, otherwise allocation will be attempted from SPIRAM
heap.
config LITTLEFS_MALLOC_STRATEGY_INTERNAL
bool "Internal heap"
help
Uses ESP-IDF heap_caps_malloc to allocate from internal heap.
config LITTLEFS_MALLOC_STRATEGY_SPIRAM
bool "SPIRAM heap"
depends on SPIRAM_USE_MALLOC && ESP32_SPIRAM_SUPPORT
help
Uses ESP-IDF heap_caps_malloc to allocate from SPIRAM heap.
endchoice
config LITTLEFS_ASSERTS
bool "Enable asserts"
default "y"
help
Selects whether littlefs performs runtime assert checks.
endmenu