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_SHELL
47	bool "File system shell"
48	depends on SHELL
49	depends on HEAP_MEM_POOL_SIZE > 0
50	help
51	  This shell provides basic browsing of the contents of the
52	  file system.
53
54if FILE_SYSTEM_SHELL
55
56config FILE_SYSTEM_SHELL_TEST_COMMANDS
57	bool "File system shell read/write/erase test commands"
58	select CBPRINTF_FP_SUPPORT
59	help
60	  Enable additional file system shell commands for performing
61	  read/write/erase tests with speed output.
62
63config FILE_SYSTEM_SHELL_BUFFER_SIZE
64	hex "File system shell buffer size"
65	depends on FILE_SYSTEM_SHELL_TEST_COMMANDS
66	default 0x100
67	range 0x20 0x1000000
68	help
69	  Size of the buffer used for file system commands, will determine the
70	  maximum size that can be used with a read/write test. Note that this
71	  is is used on the stack.
72
73endif # FILE_SYSTEM_SHELL
74
75config FILE_SYSTEM_MKFS
76	bool "Allow to format file system"
77	help
78	  Enables function fs_mkfs that can be used to format a storage device.
79
80config FUSE_FS_ACCESS
81	bool "FUSE based access to file system partitions"
82	depends on ARCH_POSIX
83	help
84	  Expose file system partitions to the host system through FUSE.
85
86rsource "Kconfig.fatfs"
87rsource "Kconfig.littlefs"
88rsource "ext2/Kconfig"
89
90endif # FILE_SYSTEM
91
92rsource "fcb/Kconfig"
93rsource "nvs/Kconfig"
94
95endmenu
96