# Copyright (c) 2018 Nordic Semiconductor ASA # SPDX-License-Identifier: Apache-2.0 menuconfig SETTINGS bool "Settings" help The settings subsystem allows its users to serialize and deserialize state in memory into and from non-volatile memory. It supports several back-ends to store and load serialized data from and it can do so atomically for all involved modules. if SETTINGS module = SETTINGS module-str = settings source "subsys/logging/Kconfig.template.log_config" config SETTINGS_RUNTIME bool "runtime storage back-end" help Enables runtime storage back-end. config SETTINGS_DYNAMIC_HANDLERS bool "dynamic settings handlers" default y help Enables the use of dynamic settings handlers # Hidden option to enable encoding length into settings entry config SETTINGS_ENCODE_LEN bool choice SETTINGS_BACKEND prompt "Storage back-end" default SETTINGS_NVS if NVS default SETTINGS_FCB if FCB default SETTINGS_FILE if FILE_SYSTEM default SETTINGS_NONE help Storage back-end to be used by the settings subsystem. config SETTINGS_FCB bool "FCB" depends on FCB help Use FCB as a settings storage back-end. config SETTINGS_FILE bool "File" depends on FILE_SYSTEM select SETTINGS_ENCODE_LEN help Use a file (on mounted file system) as a settings storage back-end. config SETTINGS_FS bool "FS (DEPRECATED)" depends on FILE_SYSTEM select SETTINGS_ENCODE_LEN select DEPRECATED help This is deprecated, please use SETTINGS_FILE instead. config SETTINGS_NVS bool "NVS non-volatile storage support" depends on NVS depends on FLASH_MAP help Enables NVS storage support if SETTINGS_NVS config SETTINGS_NVS_NAME_CACHE bool "NVS name lookup cache" help Enable NVS name lookup cache, used to reduce the Settings name lookup time. config SETTINGS_NVS_NAME_CACHE_SIZE int "NVS name lookup cache size" default 128 range 1 65535 depends on SETTINGS_NVS_NAME_CACHE help Number of entries in Settings NVS name cache. endif # SETTINGS_NVS config SETTINGS_CUSTOM bool "CUSTOM" help Use a custom settings storage back-end. config SETTINGS_NONE bool "NONE" help No storage back-end. endchoice config SETTINGS_FCB_NUM_AREAS int "Number of flash areas used by the settings subsystem" default 8 depends on SETTINGS_FCB help Number of areas to allocate in the settings FCB. A smaller number is used if the flash hardware cannot support this value. config SETTINGS_FCB_MAGIC hex "FCB magic for the settings subsystem" default 0xc0ffeeee depends on SETTINGS_FCB help Magic 32-bit word for to identify valid settings area config SETTINGS_FILE_DIR string "Serialization directory" default "/settings" depends on SETTINGS_FILE help Directory where the settings data is stored config SETTINGS_FILE_PATH string "Default settings file" default "/settings/run" depends on SETTINGS_FILE help Full path to the default settings file. config SETTINGS_FILE_MAX_LINES int "Compression threshold" default 32 depends on SETTINGS_FILE help Limit how many items stored in a file before compressing config SETTINGS_FS_DIR string "Serialization directory (DEPRECATED)" default "/settings" depends on SETTINGS_FS help This is deprecated. Use SETTINGS_FILE_DIR instead. config SETTINGS_FS_FILE string "Default settings file (DEPRECATED)" default "/settings/run" depends on SETTINGS_FS help This is deprecated. Use SETTINGS_FILE_PATH instead. config SETTINGS_FS_MAX_LINES int "Compression threshold (DEPRECATED)" default 32 depends on SETTINGS_FS help This is deprecated. Use SETTINGS_FILE_MAX_LINES instead. config SETTINGS_NVS_SECTOR_SIZE_MULT int "Sector size of the NVS settings area" default 1 depends on SETTINGS_NVS help The sector size to use for the NVS settings area as a multiple of FLASH_ERASE_BLOCK_SIZE. config SETTINGS_NVS_SECTOR_COUNT int "Sector count of the NVS settings area" default 8 depends on SETTINGS_NVS help Number of sectors used for the NVS settings area config SETTINGS_SHELL bool "Settings shell" depends on SHELL help Enable shell commands for listing and reading the settings. Note that reading the settings requires quite a big stack buffer, so the stack size of the shell thread may need to be increased to accommodate this feature. endif # SETTINGS