1# Copyright (c) 2016 Intel Corporation
2# Copyright (c) 2020 Nordic Semiconductor (ASA)
3# SPDX-License-Identifier: Apache-2.0
4
5menu "File Systems"
6
7config FILE_SYSTEM
8	bool "File system support"
9	help
10	  Enables support for file system.
11
12if FILE_SYSTEM
13
14module = FS
15module-str = fs
16source "subsys/logging/Kconfig.template.log_config"
17
18config APP_LINK_WITH_FS
19	bool "Link 'app' with FS"
20	default y
21	help
22	  Add FS header files to the 'app' include path. It may be
23	  disabled if the include paths for FS are causing aliasing
24	  issues for 'app'.
25
26config FILE_SYSTEM_MAX_TYPES
27	int "Maximum number of distinct file system types allowed"
28	default 2
29	help
30	  Zephyr provides several file system types including FatFS and
31	  LittleFS, but it is possible to define additional ones and
32	  register them.  A slot is required for each type.
33
34config FILE_SYSTEM_MAX_FILE_NAME
35	int "Optional override for maximum file name length"
36	default -1
37	help
38	  Specify the maximum file name allowed across all enabled file
39	  system types.  Zero or a negative value selects the maximum
40	  file name length for enabled in-tree file systems.  This
41	  default may be inappropriate when registering an out-of-tree
42	  file system.  Selecting a value less than the actual length
43	  supported by a file system may result in memory access
44	  violations.
45
46config FILE_SYSTEM_INIT_PRIORITY
47	int "File system initialization priority"
48	default 99
49	help
50	  Specify the initialization priority for file systems. In case
51	  automount is enabled, the initialization should be done after
52	  the underlying storage device is initialized.
53
54config FILE_SYSTEM_SHELL
55	bool "File system shell"
56	depends on SHELL
57	depends on HEAP_MEM_POOL_SIZE > 0
58	help
59	  This shell provides basic browsing of the contents of the
60	  file system.
61
62if FILE_SYSTEM_SHELL
63
64config FILE_SYSTEM_SHELL_TEST_COMMANDS
65	bool "File system shell read/write/erase test commands"
66	select CBPRINTF_FP_SUPPORT
67	help
68	  Enable additional file system shell commands for performing
69	  read/write/erase tests with speed output.
70
71config FILE_SYSTEM_SHELL_BUFFER_SIZE
72	hex "File system shell buffer size"
73	depends on FILE_SYSTEM_SHELL_TEST_COMMANDS
74	default 0x100
75	range 0x20 0x1000000
76	help
77	  Size of the buffer used for file system commands, will determine the
78	  maximum size that can be used with a read/write test. Note that this
79	  is is used on the stack.
80
81endif # FILE_SYSTEM_SHELL
82
83config FILE_SYSTEM_MKFS
84	bool "Allow to format file system"
85	help
86	  Enables function fs_mkfs that can be used to format a storage device.
87
88config FUSE_FS_ACCESS
89	bool "FUSE based access to file system partitions"
90	depends on ARCH_POSIX
91	help
92	  Expose file system partitions to the host system through FUSE.
93
94rsource "Kconfig.fatfs"
95rsource "Kconfig.littlefs"
96rsource "ext2/Kconfig"
97
98endif # FILE_SYSTEM
99
100rsource "fcb/Kconfig"
101rsource "nvs/Kconfig"
102
103endmenu
104