1menu "SPIFFS Configuration"
2
3    config SPIFFS_MAX_PARTITIONS
4        int "Maximum Number of Partitions"
5        default 3
6        range 1 10
7        help
8            Define maximum number of partitions that can be mounted.
9
10    menu "SPIFFS Cache Configuration"
11        config SPIFFS_CACHE
12            bool "Enable SPIFFS Cache"
13            default "y"
14            help
15                Enables/disable memory read caching of nucleus file system
16                operations.
17
18        config SPIFFS_CACHE_WR
19            bool "Enable SPIFFS Write Caching"
20            default "y"
21            depends on SPIFFS_CACHE
22            help
23                Enables memory write caching for file descriptors in hydrogen.
24
25        config SPIFFS_CACHE_STATS
26            bool "Enable SPIFFS Cache Statistics"
27            default "n"
28            depends on SPIFFS_CACHE
29            help
30                Enable/disable statistics on caching. Debug/test purpose only.
31
32    endmenu
33
34    config SPIFFS_PAGE_CHECK
35        bool "Enable SPIFFS Page Check"
36        default "y"
37        help
38            Always check header of each accessed page to ensure consistent state.
39            If enabled it will increase number of reads from flash, especially
40            if cache is disabled.
41
42    config SPIFFS_GC_MAX_RUNS
43        int "Set Maximum GC Runs"
44        default 10
45        range 1 255
46        help
47            Define maximum number of GC runs to perform to reach desired free pages.
48
49    config SPIFFS_GC_STATS
50        bool "Enable SPIFFS GC Statistics"
51        default "n"
52        help
53            Enable/disable statistics on gc. Debug/test purpose only.
54
55    config SPIFFS_PAGE_SIZE
56        int "SPIFFS logical page size"
57        default 256
58        range 256 1024
59        help
60            Logical page size of SPIFFS partition, in bytes. Must be multiple
61            of flash page size (which is usually 256 bytes).
62            Larger page sizes reduce overhead when storing large files, and
63            improve filesystem performance when reading large files.
64            Smaller page sizes reduce overhead when storing small (< page size)
65            files.
66
67    config SPIFFS_OBJ_NAME_LEN
68        int "Set SPIFFS Maximum Name Length"
69        default 32
70        range 1 256
71        help
72            Object name maximum length. Note that this length include the
73            zero-termination character, meaning maximum string of characters
74            can at most be SPIFFS_OBJ_NAME_LEN - 1.
75
76            SPIFFS_OBJ_NAME_LEN + SPIFFS_META_LENGTH should not exceed
77            SPIFFS_PAGE_SIZE - 64.
78
79    config SPIFFS_FOLLOW_SYMLINKS
80        bool "Enable symbolic links for image creation"
81        default "n"
82        help
83            If this option is enabled, symbolic links are taken into account
84            during partition image creation.
85
86    config SPIFFS_USE_MAGIC
87        bool "Enable SPIFFS Filesystem Magic"
88        default "y"
89        help
90            Enable this to have an identifiable spiffs filesystem.
91            This will look for a magic in all sectors to determine if this
92            is a valid spiffs system or not at mount time.
93
94    config SPIFFS_USE_MAGIC_LENGTH
95        bool "Enable SPIFFS Filesystem Length Magic"
96        default "y"
97        depends on SPIFFS_USE_MAGIC
98        help
99            If this option is enabled, the magic will also be dependent
100            on the length of the filesystem. For example, a filesystem
101            configured and formatted for 4 megabytes will not be accepted
102            for mounting with a configuration defining the filesystem as 2 megabytes.
103
104    config SPIFFS_META_LENGTH
105        int "Size of per-file metadata field"
106        default 4
107        help
108            This option sets the number of extra bytes stored in the file header.
109            These bytes can be used in an application-specific manner.
110            Set this to at least 4 bytes to enable support for saving file
111            modification time.
112
113            SPIFFS_OBJ_NAME_LEN + SPIFFS_META_LENGTH should not exceed
114            SPIFFS_PAGE_SIZE - 64.
115
116    config SPIFFS_USE_MTIME
117        bool "Save file modification time"
118        default "y"
119        depends on SPIFFS_META_LENGTH >= 4
120        help
121            If enabled, then the first 4 bytes of per-file metadata will be used
122            to store file modification time (mtime), accessible through
123            stat/fstat functions.
124            Modification time is updated when the file is opened.
125
126    config SPIFFS_MTIME_WIDE_64_BITS
127        bool "The time field occupies 64 bits in the image instead of 32 bits"
128        default n
129        depends on SPIFFS_META_LENGTH >= 8
130        help
131            If this option is not set, the time field is 32 bits (up to 2106 year),
132            otherwise it is 64 bits and make sure it matches SPIFFS_META_LENGTH.
133            If the chip already has the spiffs image with the time field = 32 bits
134            then this option cannot be applied in this case.
135            Erase it first before using this option.
136            To resolve the Y2K38 problem for the spiffs, use a toolchain with support
137            time_t 64 bits (see SDK_TOOLCHAIN_SUPPORTS_TIME_WIDE_64_BITS).
138
139    menu "Debug Configuration"
140
141        config SPIFFS_DBG
142            bool "Enable general SPIFFS debug"
143            default "n"
144            help
145                Enabling this option will print general debug mesages to the console.
146
147        config SPIFFS_API_DBG
148            bool "Enable SPIFFS API debug"
149            default "n"
150            help
151                Enabling this option will print API debug mesages to the console.
152
153        config SPIFFS_GC_DBG
154            bool "Enable SPIFFS Garbage Cleaner debug"
155            default "n"
156            help
157                Enabling this option will print GC debug mesages to the console.
158
159        config SPIFFS_CACHE_DBG
160            bool "Enable SPIFFS Cache debug"
161            default "n"
162            depends on SPIFFS_CACHE
163            help
164                Enabling this option will print cache debug mesages to the console.
165
166        config SPIFFS_CHECK_DBG
167            bool "Enable SPIFFS Filesystem Check debug"
168            default "n"
169            help
170                Enabling this option will print Filesystem Check debug mesages
171                to the console.
172
173        config SPIFFS_TEST_VISUALISATION
174            bool "Enable SPIFFS Filesystem Visualization"
175            default "n"
176            help
177                Enable this option to enable SPIFFS_vis function in the API.
178
179    endmenu
180
181endmenu
182