1# Copyright (c) 2023, Nordic Semiconductor ASA
2# SPDX-License-Identifier: Apache-2.0
3
4menuconfig RETENTION
5	bool "Retention support"
6	imply CRC
7	depends on RETAINED_MEM
8	depends on DT_HAS_ZEPHYR_RETENTION_ENABLED
9	help
10	  Enables support for the retention system, which uses retained memory
11	  drivers.
12
13if RETENTION
14
15config RETENTION_INIT_PRIORITY
16	int "Retention devices init priority"
17	default 86
18	help
19	  Retention device initialization priority (must be higher than init
20	  priorities for retained memory drivers).
21
22config RETENTION_MUTEXES
23	bool
24	default y
25	depends on MULTITHREADING
26	depends on !RETENTION_MUTEX_FORCE_DISABLE
27
28config RETENTION_MUTEX_FORCE_DISABLE
29	bool "Disable retention mutex support"
30	depends on MULTITHREADING
31	help
32	  Disable use of mutexes which prevent issues with concurrent retention
33	  device access. This option should only be enabled when retention
34	  access is required in an ISR or for special use cases.
35
36config RETENTION_BUFFER_SIZE
37	int "Retention stack buffer sizes"
38	default 16
39	range 1 4096
40	help
41	  Size of buffers (stack based) used when reading and writing data
42	  from/to the retention device.
43
44menu "Retention modules"
45
46config RETENTION_BOOT_MODE
47	bool "Boot mode"
48	help
49	  Adds a boot mode system that allows for changing execution flow
50	  depending upon the value of a boot mode parameter. Can be used for
51	  e.g. button-less bootloader serial recovery mode entering from the
52	  application.
53
54	  In order to use this, a retention area with at least 1 usable user
55	  byte must be created and set as the "zephyr,boot-mode" chosen node
56	  via device tree.
57
58source "subsys/retention/Kconfig.blinfo"
59
60endmenu
61
62module = RETENTION
63module-str = retention
64source "subsys/logging/Kconfig.template.log_config"
65
66endif # RETENTION
67