Boot Linux faster!

Check our new training course

Boot Linux faster!

Check our new training course
and Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

# Copyright (c) 2018 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

menuconfig SETTINGS
	bool "Enable settings subsystem with non-volatile storage"
	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"
endif

config SETTINGS_RUNTIME
	bool "runtime storage back-end"
	depends on SETTINGS
	help
	  Enables runtime storage back-end.

config SETTINGS_DYNAMIC_HANDLERS
	bool "dynamic settings handlers"
	depends on SETTINGS
	default y
	help
	  Enables the use of dynamic settings handlers

# Hidden option to enable encoding length into settings entry
config SETTINGS_ENCODE_LEN
	depends on SETTINGS
	bool

config SETTINGS_USE_BASE64
	bool "encoding value using base64 (deprecated)"
	depends on SETTINGS
	select BASE64
	help
	  This option has been deprecated and will not be supported
	  in future releases.
	  Enables values encoding using Base64.

choice
	prompt "Storage back-end"
	default SETTINGS_NVS if NVS
	default SETTINGS_FCB if FCB
	default SETTINGS_FS if FILE_SYSTEM
	default SETTINGS_NONE
	depends on SETTINGS
	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_FS
	bool "File System"
	depends on FILE_SYSTEM
	select SETTINGS_ENCODE_LEN
	help
	  Use a file system as a settings storage back-end.

config SETTINGS_NVS
	bool "NVS non-volatile storage support"
	depends on NVS
	depends on FLASH_MAP
	help
	  Enables NVS storage support

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 && 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 && SETTINGS_FCB
	help
	  Magic 32-bit word for to identify valid settings area

config SETTINGS_FS_DIR
	string "Serialization directory"
	default "/settings"
	depends on SETTINGS && SETTINGS_FS
	help
	  Directory where the settings data is stored

config SETTINGS_FS_FILE
	string "Default settings file"
	default "/settings/run"
	depends on SETTINGS && SETTINGS_FS
	help
	  Full path to the default settings file.

config SETTINGS_FS_MAX_LINES
	int "Compression threshold"
	default 32
	depends on SETTINGS && SETTINGS_FS
	help
	  Limit how many items stored in a file before compressing

config SETTINGS_NVS_SECTOR_SIZE_MULT
	int "Sector size of the NVS settings area"
	default 1
	depends on SETTINGS && 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 && SETTINGS_NVS
	help
	  Number of sectors used for the NVS settings area