1if PERCEPIO_DFM
2
3config PERCEPIO_DFM_CFG_FIRMWARE_VERSION
4	string "Firmware version"
5	default "X.Y.Z"
6	help
7		The firmware verison. This needs to be set to differentiate alerts between different versions
8
9config PERCEPIO_DFM_CFG_PRODUCTID
10	int "Product id"
11	default 1
12	help
13		An identifier to identify the product type.
14
15config PERCEPIO_DFM_CFG_ENABLE_DEBUG_PRINT
16	bool "Enable debug messages"
17	default n
18	help
19		Enable Diagnostic messages from DFM_DEBUG(	.). Will use DFM_ERROR to output debug information.
20
21menu "Cloudport Config"
22
23choice PERCEPIO_DFM_CFG_CLOUDPORT
24	prompt "Cloudport"
25	default PERCEPIO_DFM_CFG_CLOUDPORT_NONE
26
27config PERCEPIO_DFM_CFG_CLOUDPORT_SERIAL
28	bool "Serial"
29	help
30		Send Alerts and chunks through the serial port, used with a serial terminal and accompanying
31		scripts, which post-processes the data and makes it available in DevAlert.
32
33config PERCEPIO_DFM_CFG_CLOUDPORT_NONE
34	bool "None"
35	help
36		Don't send alerts via the cloudport
37
38endchoice # choice PERCEPIO_DFM_CFG_CLOUDPORT
39
40endmenu # menu "Cloudport Config"
41
42menu "Storageport Config"
43
44choice PERCEPIO_DFM_CFG_STORAGEPORT
45	prompt "Storageport"
46	default PERCEPIO_DFM_CFG_STORAGEPORT_NONE
47
48config PERCEPIO_DFM_CFG_STORAGEPORT_NONE
49	bool "None"
50	help
51		Don't store alerts.
52
53config PERCEPIO_DFM_CFG_STORAGEPORT_FLASH
54	bool "Flash via FCB"
55	depends on (FLASH && FLASH_MAP && FCB)
56	help
57		Storage alerts on flash via the Zephyr FCB module.
58
59config PERCEPIO_DFM_CFG_STORAGEPORT_FILESYSTEM
60	bool "Filesystem"
61	depends on (FLASH && FLASH_MAP && FILE_SYSTEM)
62	help
63		Store alerts in a location on a filesystem. Uses
64		the zephyr file system abstraction.
65
66endchoice # choice PERCEPIO_DFM_CFG_STORAGEPORT
67
68endmenu # menu "Storageport Config"
69
70menu "Buffer Settings"
71
72config PERCEPIO_DFM_CFG_MAX_PAYLOAD_CHUNK_SIZE
73	int "Maximum payload chunk size"
74	default 1000
75	help
76		The maximum size of a "chunk" that will be stored or sent.
77
78config PERCEPIO_DFM_CFG_DEVICE_NAME_MAX_LEN
79	int "Maximum device name length"
80	default 32
81	help
82		The maximum length of the device name.
83
84config PERCEPIO_DFM_CFG_MAX_PAYLOADS
85	int "Max Payloads"
86	default 8
87	help
88		The maximum number of payloads which can be attached to a single alert.
89
90config PERCEPIO_DFM_CFG_MAX_SYMPTOMS
91	int "Max Symptoms"
92	default 8
93	help
94		The maximum number of symptoms which can be attached to a single alert.
95
96config PERCEPIO_DFM_CFG_FIRMWARE_VERSION_MAX_LEN
97	int "Maximum firmware version string length"
98	default 64
99	help
100		The max firmware version string length.
101
102config PERCEPIO_DFM_CFG_DESCRIPTION_MAX_LEN
103	int "Description string maximum length"
104	default 64
105	help
106		The maximum length of the description string.
107
108config PERCEPIO_DFM_CFG_DELAY_BETWEEN_SEND
109	int "Delay between sends"
110	default 0
111	help
112		Create a delay between transfers. Should normally not be needed.
113
114endmenu # menu "Buffer Settings"
115
116menu "Strategy Settings"
117
118choice PERCEPIO_DFM_CFG_SELECTED_STORAGE_STRATEGY
119	prompt "Storage strategy"
120	default PERCEPIO_DFM_CFG_SELECTED_STORAGE_STRATEGY_IGNORE
121
122config PERCEPIO_DFM_CFG_SELECTED_STORAGE_STRATEGY_IGNORE
123	bool "Ignore"
124	help
125		Never store alerts/payloads
126
127config PERCEPIO_DFM_CFG_SELECTED_STORAGE_STRATEGY_OVERWRITE
128	bool "Overwrite"
129	help
130		Overwrite old alerts/payloads if the FCB is full.
131
132config PERCEPIO_DFM_CFG_SELECTED_STORAGE_STRATEGY_SKIP
133	bool "Skip"
134	help
135		Don't save the new alert/payload of the FCB already is full.
136
137endchoice # choice "PERCEPIO_SELECTED_STORAGE_STRATEGY"
138
139choice PERCEPIO_DFM_CFG_SELECTED_CLOUD_STRATEGY
140	prompt "Cloud strategy"
141	default PERCEPIO_DFM_CFG_SELECTED_CLOUD_STRATEGY_ONLINE
142
143config PERCEPIO_DFM_CFG_SELECTED_CLOUD_STRATEGY_ONLINE
144	bool "Online"
145	help
146		Attempt to send alerts/payloads.
147
148config PERCEPIO_DFM_CFG_SELECTED_CLOUD_STRATEGY_OFFLINE
149	bool "Offline"
150	help
151		Don't attempt to send alerts/payloads.
152
153endchoice
154
155choice PERCEPIO_DFM_CFG_SELECTED_SESSIONID_STRATEGY
156	prompt "Session Id Strategy"
157	default PERCEPIO_DFM_CFG_SELECTED_SESSIONID_STRATEGY_ONALERT
158
159config PERCEPIO_DFM_CFG_SELECTED_SESSIONID_STRATEGY_ONSTARTUP
160	bool "On Startup"
161	help
162		Set the session id on startup
163
164config PERCEPIO_DFM_CFG_SELECTED_SESSIONID_STRATEGY_ONALERT
165	bool "On Alert"
166	help
167		Set the session id when an alert is generated
168
169endchoice # choice "PERCEPIO_DFM_CFG_SELECTED_SESSIONID_STRATEGY"
170
171endmenu # menu "Strategy Settings"
172
173config PERCEPIO_DFM_CFG_RETAINED_MEMORY
174	bool "Retained Memory support"
175	depends on (RETAINED_MEM && RETENTION)
176	help
177		Enable the ability to temporarily store alerts in retained RAM.
178		This can be used when the storageport is unavailable from the
179		current context (hardfault). After reboot the alert can be either
180		sent to cloudport or saved to storageport.
181		This requires that you set up a retained memory region called
182		retention0 in a devicetree overlay. Depending on your use case
183		you might have to disable the mutex usage protecting this memory
184		in order to write to it (such as writing from a hardfault context).
185
186config PERCEPIO_DFM_CFG_ENABLE_COREDUMPS
187	bool "Enable Core Dump support"
188	default n
189	depends on (DEBUG_COREDUMP && DEBUG_COREDUMP_BACKEND_OTHER && DEBUG_COREDUMP_MEMORY_DUMP_MIN)
190	help
191		Support for adding Core Dumps to alerts.
192
193if PERCEPIO_DFM_CFG_ENABLE_COREDUMPS
194
195choice PERCEPIO_DFM_CFG_COREDUMP_STRATEGY
196	prompt "Core Dump strategy"
197	default PERCEPIO_DFM_CFG_COREDUMP_RETAIN
198
199config PERCEPIO_DFM_CFG_COREDUMP_RETAIN
200	bool "Save in Retained Memory"
201	help
202		This requires that Retained Memory has been enabled and configured properly.
203		See the Getting Started guide for more details.
204
205config PERCEPIO_DFM_CFG_COREDUMP_STORE
206	bool "Store using selected storageport"
207	help
208		Core Dumps will be stored using the selected storageport. If the storageport
209		isn't compatible with the context where the coredump is generated then it will not work.
210
211endchoice # choice "PERCEPIO_DFM_CFG_COREDUMP_STRATEGY"
212
213config PERCEPIO_DFM_CFG_STACKDUMP_SIZE
214	int "Stack Dump size"
215	default 300
216	help
217		How many bytes to dump from the stack (relative to the current stack pointer)
218
219config PERCEPIO_DFM_CFG_MAX_COREDUMP_SIZE
220	int "Core Dump size"
221	default 1000
222	help
223		Maximum total size of the Core Dump. Since this uses a buffer in memory as a temporary work area,
224		this will affect memory usage.
225
226config PERCEPIO_DFM_CFG_ADD_TRACE
227	bool "Save Trace"
228	depends on (PERCEPIO_TRACERECORDER && PERCEPIO_TRC_CFG_STREAM_PORT_RINGBUFFER)
229	default y
230	help
231		If this is set to true, crashcatcher will always try to save a trace with the Alert.
232		Please not that this feature requires the Percepio Trace Recorder to be included in
233		the project as well.
234
235endif # PERCEPIO_DFM_ENABLE_COREDUMPS
236
237if PERCEPIO_DFM_CFG_STORAGEPORT_FLASH
238rsource "storageports/Flash/Kconfig"
239endif # PERCEPIO_DFM_CFG_STORAGEPORT_FLASH
240
241if PERCEPIO_DFM_CFG_STORAGEPORT_FILESYSTEM
242rsource "storageports/Filesystem/Kconfig"
243endif # PERCEPIO_DFM_CFG_STORAGEPORT_FILESYSTEM
244
245endif # PERCEPIO_DFM
246