1# Shell backends configuration options
2
3# Copyright (c) 2018 Nordic Semiconductor ASA
4# SPDX-License-Identifier: Apache-2.0
5
6menuconfig SHELL_BACKENDS
7	bool "Shell backends"
8	default y
9	help
10	  Enable shell backends.
11
12if SHELL_BACKENDS
13
14# Workaround for not being able to have commas in macro arguments
15DT_CHOSEN_Z_SHELL_UART := zephyr,shell-uart
16
17config SHELL_BACKEND_SERIAL
18	bool "Serial backend"
19	default "$(dt_chosen_enabled,$(DT_CHOSEN_Z_SHELL_UART))"
20	select SERIAL
21	select RING_BUFFER
22	help
23	  Enable serial backend.
24
25if SHELL_BACKEND_SERIAL
26
27config SHELL_BACKEND_SERIAL_INIT_PRIORITY
28	int "Initialization priority"
29	default APPLICATION_INIT_PRIORITY
30	range 0 99
31	help
32	  Initialization priority for UART backend. This must be bigger than
33	  the initialization priority of the used serial device.
34
35config SHELL_PROMPT_UART
36	string "Displayed prompt name"
37	default "uart:~$ "
38	help
39	  Displayed prompt name for UART backend. If prompt is set, the shell will
40	  send two newlines during initialization.
41
42config SHELL_BACKEND_SERIAL_INTERRUPT_DRIVEN
43	bool "Interrupt driven"
44	default y if !UART_NATIVE_PTY
45	depends on SERIAL_SUPPORT_INTERRUPT
46
47config SHELL_ASYNC_API
48	bool "Asynchronous shell API"
49	default n
50	depends on UART_ASYNC_API
51	help
52	  This option enables asynchronous shell API.
53
54choice SHELL_BACKEND_SERIAL_API
55	prompt "Mode"
56	default SHELL_BACKEND_SERIAL_API_ASYNC if SHELL_ASYNC_API
57	default SHELL_BACKEND_SERIAL_API_INTERRUPT_DRIVEN if SHELL_BACKEND_SERIAL_INTERRUPT_DRIVEN
58	default SHELL_BACKEND_SERIAL_API_POLLING
59
60config SHELL_BACKEND_SERIAL_API_POLLING
61	prompt "Polling"
62
63config SHELL_BACKEND_SERIAL_API_INTERRUPT_DRIVEN
64	bool "Interrupt driven"
65	depends on SERIAL_SUPPORT_INTERRUPT
66	select UART_INTERRUPT_DRIVEN
67
68
69config SHELL_BACKEND_SERIAL_API_ASYNC
70	bool "Asynchronous"
71	depends on SERIAL_SUPPORT_ASYNC
72	select UART_ASYNC_RX_HELPER
73
74endchoice
75
76config SHELL_BACKEND_SERIAL_FORCE_TX_BLOCKING_MODE
77	bool "Force blocking mode for TX"
78	help
79	  Force blocking mode for TX.
80
81config SHELL_BACKEND_SERIAL_TX_RING_BUFFER_SIZE
82	int "Set TX ring buffer size"
83	default 8
84	depends on SHELL_BACKEND_SERIAL_API_INTERRUPT_DRIVEN
85	help
86	  If UART is utilizing DMA transfers then increasing ring buffer size
87	  increases transfers length and reduces number of interrupts.
88
89config SHELL_BACKEND_SERIAL_RX_RING_BUFFER_SIZE
90	int "Set RX ring buffer size"
91	depends on SHELL_BACKEND_SERIAL_API_INTERRUPT_DRIVEN || SHELL_BACKEND_SERIAL_API_POLLING
92	default 256 if MCUMGR_TRANSPORT_SHELL
93	default 64
94	help
95	  RX ring buffer size impacts accepted latency of handling incoming
96	  bytes by shell. If shell input is coming from the keyboard then it is
97	  usually enough if ring buffer is few bytes (more than one due to
98	  escape sequences). However, if bulk data is transferred it may be
99	  required to increase it.
100
101config SHELL_BACKEND_SERIAL_NEEDS_LARGE_RING_BUFFER
102	bool
103	default y if SHELL_BACKEND_SERIAL_TX_RING_BUFFER_SIZE > $(INT16_MAX)
104	default y if SHELL_BACKEND_SERIAL_RX_RING_BUFFER_SIZE > $(INT16_MAX)
105	select RING_BUFFER_LARGE
106	help
107	  This is a helper Kconfig to select RING_BUFFER_LARGE when the implementation
108	  requires a ring buffer of > 32kB.
109
110if SHELL_BACKEND_SERIAL_API_ASYNC
111
112config SHELL_BACKEND_SERIAL_ASYNC_RX_TIMEOUT
113	int "RX inactivity timeout (in microseconds)"
114	default 10000
115	help
116	  Inactivity timeout after which received data is reported.
117
118config SHELL_BACKEND_SERIAL_ASYNC_RX_BUFFER_COUNT
119	int "Number of RX buffers"
120	default 4
121	range 2 64
122	help
123	  Number of RX buffers. Some UART driver implementations changes buffers
124	  on timeout so this number should be big enough to cover handling on
125	  time incoming data. 4 should be enough for almost all the cases unless
126	  CPU load is high and there is very high shell thread latency.
127
128config SHELL_BACKEND_SERIAL_ASYNC_RX_BUFFER_SIZE
129	int "Size of the RX buffer"
130	default 16
131	help
132	  Size of a single RX buffer. Together with buffer count it defines the
133	  space that can hold RX data. It may be decreased if shell input is
134	  slow and may need to be increased if long messages are pasted directly
135	  to the shell prompt.
136
137endif # SHELL_BACKEND_SERIAL_API_ASYNC
138
139config SHELL_BACKEND_SERIAL_RX_POLL_PERIOD
140	int "RX polling period (in milliseconds)"
141	default 10
142	depends on SHELL_BACKEND_SERIAL_API_POLLING
143	help
144	  Determines how often UART is polled for RX byte.
145
146config SHELL_BACKEND_SERIAL_CHECK_DTR
147	bool "Check DTR signal before TX"
148	depends on SHELL_BACKEND_SERIAL_API_INTERRUPT_DRIVEN
149	depends on UART_LINE_CTRL
150	help
151	  Check DTR signal before TX.
152
153module = SHELL_BACKEND_SERIAL
154default-timeout = 100
155source "subsys/shell/Kconfig.template.shell_log_queue_timeout"
156
157default-size = 512
158source "subsys/shell/Kconfig.template.shell_log_queue_size"
159
160choice
161	prompt "Initial log level limit"
162	default SHELL_BACKEND_SERIAL_LOG_LEVEL_DEFAULT
163
164config SHELL_BACKEND_SERIAL_LOG_LEVEL_DEFAULT
165	bool "System limit (LOG_MAX_LEVEL)"
166
167config SHELL_BACKEND_SERIAL_LOG_LEVEL_DBG
168	bool "Debug"
169
170config SHELL_BACKEND_SERIAL_LOG_LEVEL_INF
171	bool "Info"
172
173config SHELL_BACKEND_SERIAL_LOG_LEVEL_WRN
174	bool "Warning"
175
176config SHELL_BACKEND_SERIAL_LOG_LEVEL_ERR
177	bool "Error"
178
179config SHELL_BACKEND_SERIAL_LOG_LEVEL_NONE
180	bool "None"
181
182endchoice
183
184config SHELL_BACKEND_SERIAL_LOG_LEVEL
185	int
186	default 0 if SHELL_BACKEND_SERIAL_LOG_LEVEL_NONE
187	default 1 if SHELL_BACKEND_SERIAL_LOG_LEVEL_ERR
188	default 2 if SHELL_BACKEND_SERIAL_LOG_LEVEL_WRN
189	default 3 if SHELL_BACKEND_SERIAL_LOG_LEVEL_INF
190	default 4 if SHELL_BACKEND_SERIAL_LOG_LEVEL_DBG
191	default 5 if SHELL_BACKEND_SERIAL_LOG_LEVEL_DEFAULT
192
193endif # SHELL_BACKEND_SERIAL
194
195config SHELL_BACKEND_RTT
196	bool "RTT backend"
197	select CONSOLE
198	select RTT_CONSOLE
199	select SEGGER_RTT_CUSTOM_LOCKING
200	depends on USE_SEGGER_RTT
201	# RTT backend can only be called from thread context.
202	depends on !(SHELL_LOG_BACKEND && LOG_MODE_IMMEDIATE)
203	help
204	  Enable RTT backend.
205
206if SHELL_BACKEND_RTT
207
208config SHELL_PROMPT_RTT
209	string "Displayed prompt name"
210	default "rtt:~$ "
211	help
212	  Displayed prompt name for RTT backend. If prompt is set, the shell will
213	  send two newlines during initialization.
214
215config SHELL_BACKEND_RTT_BUFFER
216	int "Buffer number used for shell input and output."
217	range 0 SEGGER_RTT_MAX_NUM_UP_BUFFERS
218	default 0
219	help
220	  Select index of up-buffer used for shell output, by default it uses
221	  terminal up-buffer and its settings.
222
223config SHELL_BACKEND_RTT_RETRY_CNT
224	int "Number of retries"
225	default 4
226	help
227	  Number of TX retries before dropping the data and assuming that
228	  RTT session is inactive.
229
230config SHELL_BACKEND_RTT_RETRY_DELAY_MS
231	int "Delay between TX retries in milliseconds"
232	default 5
233	help
234	  Sleep period between TX retry attempts. During RTT session, host pulls
235	  data periodically. Period starts from 1-2 milliseconds and can be
236	  increased if traffic on RTT increases (also from host to device). In
237	  case of heavy traffic data can be lost and it may be necessary to
238	  increase delay or number of retries.
239
240config SHELL_RTT_RX_POLL_PERIOD
241	int "RX polling period (in milliseconds)"
242	default 10
243	help
244	  Determines how often RTT is polled for RX byte.
245
246module = SHELL_BACKEND_RTT
247default-timeout = 100
248source "subsys/shell/Kconfig.template.shell_log_queue_timeout"
249
250default-size = 512
251source "subsys/shell/Kconfig.template.shell_log_queue_size"
252
253choice
254	prompt "Initial log level limit"
255	default SHELL_RTT_INIT_LOG_LEVEL_DEFAULT
256
257config SHELL_RTT_INIT_LOG_LEVEL_DEFAULT
258	bool "System limit (LOG_MAX_LEVEL)"
259
260config SHELL_RTT_INIT_LOG_LEVEL_DBG
261	bool "Debug"
262
263config SHELL_RTT_INIT_LOG_LEVEL_INF
264	bool "Info"
265
266config SHELL_RTT_INIT_LOG_LEVEL_WRN
267	bool "Warning"
268
269config SHELL_RTT_INIT_LOG_LEVEL_ERR
270	bool "Error"
271
272config SHELL_RTT_INIT_LOG_LEVEL_NONE
273	bool "None"
274
275endchoice
276
277config SHELL_RTT_INIT_LOG_LEVEL
278	int
279	default 0 if SHELL_RTT_INIT_LOG_LEVEL_NONE
280	default 1 if SHELL_RTT_INIT_LOG_LEVEL_ERR
281	default 2 if SHELL_RTT_INIT_LOG_LEVEL_WRN
282	default 3 if SHELL_RTT_INIT_LOG_LEVEL_INF
283	default 4 if SHELL_RTT_INIT_LOG_LEVEL_DBG
284	default 5 if SHELL_RTT_INIT_LOG_LEVEL_DEFAULT
285
286module = SHELL_RTT
287module-str = RTT shell backend
288source "subsys/logging/Kconfig.template.log_config"
289
290endif # SHELL_BACKEND_RTT
291
292config SHELL_BACKEND_MQTT
293	bool "MQTT backend"
294	depends on NET_TCP
295	depends on NET_IPV4
296	depends on NETWORKING
297	select DNS_RESOLVER
298	select HWINFO
299	select MQTT_LIB
300	select NET_CONNECTION_MANAGER
301	help
302	  Enable MQTT backend.
303
304if SHELL_BACKEND_MQTT
305
306config SHELL_MQTT_SERVER_ADDR
307	string "MQTT server address"
308	default "192.168.0.100"
309	help
310	  MQTT server address.
311
312config SHELL_MQTT_SERVER_PORT
313	int "MQTT server port"
314	default 1883
315	help
316	  MQTT server port.
317
318config SHELL_MQTT_SERVER_USERNAME
319	string "MQTT server username"
320	help
321	  MQTT server username.
322
323config SHELL_MQTT_SERVER_PASSWORD
324	string "MQTT server password"
325	help
326	  MQTT server password.
327
328config SHELL_MQTT_RX_BUF_SIZE
329	int "RX buffer size"
330	default 256
331	help
332	  Buffer size for the MQTT data reception.
333
334config SHELL_MQTT_NEEDS_LARGE_RING_BUFFER
335	bool
336	default y if SHELL_MQTT_RX_BUF_SIZE > $(INT16_MAX)
337	select RING_BUFFER_LARGE
338	help
339	  This is a helper Kconfig to select RING_BUFFER_LARGE when the implementation
340	  requires a ring buffer of > 32kB.
341
342config SHELL_MQTT_TX_BUF_SIZE
343	int "TX buffer size"
344	range 32 $(UINT16_MAX)
345	default 256
346	help
347	  Buffer size for the MQTT data transmission.
348
349config SHELL_MQTT_CONNECT_TIMEOUT_MS
350	int "MQTT connect timeout [ms]"
351	default 2000
352	help
353	  Time to await MQTT connect acknowledge in milliseconds.
354
355config SHELL_MQTT_WORK_DELAY_MS
356	int "MQTT work delay [ms]"
357	default 1000
358	help
359	  Period between MQTT work in milliseconds.
360
361config SHELL_MQTT_LISTEN_TIMEOUT_MS
362	int "MQTT listen timeout [ms]"
363	default 500
364	help
365	  Time to listen for incoming packets in milliseconds.
366
367config SHELL_MQTT_TOPIC_RX_ID
368	string "MQTT topic receive identifier"
369	default "/sh/rx"
370	help
371	  String used as receive identifier in the MQTT topic.
372
373config SHELL_MQTT_TOPIC_TX_ID
374	string "MQTT topic transmit identifier"
375	default "/sh/tx"
376	help
377	  String used as transmit identifier in the MQTT topic.
378
379module = SHELL_BACKEND_MQTT
380default-timeout = 100
381source "subsys/shell/Kconfig.template.shell_log_queue_timeout"
382
383default-size = 512
384source "subsys/shell/Kconfig.template.shell_log_queue_size"
385
386choice
387	prompt "Initial log level limit"
388	default SHELL_MQTT_INIT_LOG_LEVEL_DEFAULT
389
390config SHELL_MQTT_INIT_LOG_LEVEL_DEFAULT
391	bool "System limit (LOG_MAX_LEVEL)"
392
393config SHELL_MQTT_INIT_LOG_LEVEL_DBG
394	bool "Debug"
395
396config SHELL_MQTT_INIT_LOG_LEVEL_INF
397	bool "Info"
398
399config SHELL_MQTT_INIT_LOG_LEVEL_WRN
400	bool "Warning"
401
402config SHELL_MQTT_INIT_LOG_LEVEL_ERR
403	bool "Error"
404
405config SHELL_MQTT_INIT_LOG_LEVEL_NONE
406	bool "None"
407
408endchoice # SHELL_MQTT_INIT_LOG_LEVEL
409
410config SHELL_MQTT_INIT_LOG_LEVEL
411	int
412	default 0 if SHELL_MQTT_INIT_LOG_LEVEL_NONE
413	default 1 if SHELL_MQTT_INIT_LOG_LEVEL_ERR
414	default 2 if SHELL_MQTT_INIT_LOG_LEVEL_WRN
415	default 3 if SHELL_MQTT_INIT_LOG_LEVEL_INF
416	default 4 if SHELL_MQTT_INIT_LOG_LEVEL_DBG
417	default 5 if SHELL_MQTT_INIT_LOG_LEVEL_DEFAULT
418
419module = SHELL_MQTT
420module-str = MQTT shell backend
421source "subsys/logging/Kconfig.template.log_config"
422
423endif # SHELL_BACKEND_MQTT
424
425config SHELL_BACKEND_RPMSG
426	bool "RPMsg backend."
427	depends on OPENAMP
428	help
429	  Enable RPMsg backend.
430
431if SHELL_BACKEND_RPMSG
432
433config SHELL_PROMPT_RPMSG
434	string "Displayed prompt name"
435	default "ipc:~$ "
436	help
437	  Displayed prompt name for RPMsg backend. If prompt is set, the shell will
438	  send two newlines during initialization.
439
440config SHELL_RPMSG_SERVICE_NAME
441	string "Service name"
442	default "rpmsg-tty"
443	help
444	  The service name associated with the RPMsg endpoint.
445
446config SHELL_RPMSG_SRC_ADDR
447	hex "Local address"
448	default 0xffffffff # The ANY address
449	help
450	  Local address of the RPMsg endpoint.
451
452config SHELL_RPMSG_DST_ADDR
453	hex "Remote address"
454	default 0xffffffff # The ANY address
455	help
456	  Target address of the RPMsg endpoint.
457
458config SHELL_RPMSG_MAX_RX
459	int "Receive buffer size"
460	default 10
461	help
462	  The maximum number of received messages to be queued.
463
464module = SHELL_BACKEND_RPMSG
465default-timeout = 100
466source "subsys/shell/Kconfig.template.shell_log_queue_timeout"
467
468default-size = 512
469source "subsys/shell/Kconfig.template.shell_log_queue_size"
470
471choice
472	prompt "Initial log level limit"
473	default SHELL_RPMSG_INIT_LOG_LEVEL_DEFAULT
474
475config SHELL_RPMSG_INIT_LOG_LEVEL_DEFAULT
476	bool "System limit (LOG_MAX_LEVEL)"
477
478config SHELL_RPMSG_INIT_LOG_LEVEL_DBG
479	bool "Debug"
480
481config SHELL_RPMSG_INIT_LOG_LEVEL_INF
482	bool "Info"
483
484config SHELL_RPMSG_INIT_LOG_LEVEL_WRN
485	bool "Warning"
486
487config SHELL_RPMSG_INIT_LOG_LEVEL_ERR
488	bool "Error"
489
490config SHELL_RPMSG_INIT_LOG_LEVEL_NONE
491	bool "None"
492
493endchoice # SHELL_RPMSG_INIT_LOG_LEVEL
494
495config SHELL_RPMSG_INIT_LOG_LEVEL
496	int
497	default 0 if SHELL_RPMSG_INIT_LOG_LEVEL_NONE
498	default 1 if SHELL_RPMSG_INIT_LOG_LEVEL_ERR
499	default 2 if SHELL_RPMSG_INIT_LOG_LEVEL_WRN
500	default 3 if SHELL_RPMSG_INIT_LOG_LEVEL_INF
501	default 4 if SHELL_RPMSG_INIT_LOG_LEVEL_DBG
502	default 5 if SHELL_RPMSG_INIT_LOG_LEVEL_DEFAULT
503
504module = SHELL_RPMSG
505module-str = RPMsg shell backend
506source "subsys/logging/Kconfig.template.log_config"
507
508endif # SHELL_BACKEND_RPMSG
509
510config SHELL_BACKEND_TELNET
511	bool "TELNET backend."
512	depends on NET_TCP
513	depends on NET_IPV4 || NET_IPV6
514	select NET_SOCKETS_SERVICE
515	select NET_SOCKETS
516	help
517	  Enable TELNET backend.
518
519if SHELL_BACKEND_TELNET
520
521config SHELL_TELNET_INIT_PRIORITY
522	int "Initialization priority"
523	default 95
524	range 0 99
525	help
526	  Initialization priority for telnet shell backend. This must be higher
527	  than socket service initialization priority, as socket service has to
528	  be initialized earlier.
529
530config SHELL_PROMPT_TELNET
531	string "Displayed prompt name"
532	default "~$ "
533	help
534	  Displayed prompt name for TELNET backend. If prompt is set, the shell will
535	  send two newlines during initialization.
536
537config SHELL_TELNET_PORT
538	int "Telnet port number"
539	default 23
540	help
541	  This option is used to configure on which port telnet is going
542	  to be bound.
543
544config SHELL_TELNET_LINE_BUF_SIZE
545	int "Telnet line buffer size"
546	default 80
547	help
548	  This option can be used to modify the size of the buffer storing
549	  shell output line, prior to sending it through the network.
550	  Of course an output line can be longer than such size, it just
551	  means sending it will start as soon as it reaches this size.
552	  It really depends on what type of output is expected.
553	  A lot of short lines: better reduce this value. On the contrary,
554	  raise it.
555
556config SHELL_TELNET_SEND_TIMEOUT
557	int "Telnet line send timeout"
558	default 100
559	help
560	  This option can be used to modify the duration of the timer that kick
561	  in when a line buffer is not empty but did not yet meet the line feed.
562
563config SHELL_TELNET_SUPPORT_COMMAND
564	bool "Add support for telnet commands (IAC) [EXPERIMENTAL]"
565	select EXPERIMENTAL
566	help
567	  Current support is so limited it's not interesting to enable it.
568	  However, if proven to be needed at some point, it will be possible
569	  to extend such support. It does have support for echo and "character
570	  at a time" mode, which enable the history and line-editing features
571	  of the shell.
572	  IMPORTANT: This will increase network usage as a TCP packet will be
573	  sent each time a character is typed in the telnet client.
574
575module = SHELL_TELNET
576default-timeout = 100
577source "subsys/shell/Kconfig.template.shell_log_queue_timeout"
578
579default-size = 512
580source "subsys/shell/Kconfig.template.shell_log_queue_size"
581
582choice
583	prompt "Initial log level limit"
584	default SHELL_TELNET_INIT_LOG_LEVEL_DEFAULT
585
586config SHELL_TELNET_INIT_LOG_LEVEL_DEFAULT
587	bool "System limit (LOG_MAX_LEVEL)"
588
589config SHELL_TELNET_INIT_LOG_LEVEL_DBG
590	bool "Debug"
591
592config SHELL_TELNET_INIT_LOG_LEVEL_INF
593	bool "Info"
594
595config SHELL_TELNET_INIT_LOG_LEVEL_WRN
596	bool "Warning"
597
598config SHELL_TELNET_INIT_LOG_LEVEL_ERR
599	bool "Error"
600
601config SHELL_TELNET_INIT_LOG_LEVEL_NONE
602	bool "None"
603
604endchoice
605
606config SHELL_TELNET_INIT_LOG_LEVEL
607	int
608	default 0 if SHELL_TELNET_INIT_LOG_LEVEL_NONE
609	default 1 if SHELL_TELNET_INIT_LOG_LEVEL_ERR
610	default 2 if SHELL_TELNET_INIT_LOG_LEVEL_WRN
611	default 3 if SHELL_TELNET_INIT_LOG_LEVEL_INF
612	default 4 if SHELL_TELNET_INIT_LOG_LEVEL_DBG
613	default 5 if SHELL_TELNET_INIT_LOG_LEVEL_DEFAULT
614
615module = SHELL_TELNET
616module-str = TELNET shell backend
617source "subsys/logging/Kconfig.template.log_config"
618
619endif # SHELL_TELNET_BACKEND
620
621config SHELL_BACKEND_WEBSOCKET
622	bool "Websocket backend."
623	depends on HTTP_SERVER_WEBSOCKET
624	depends on NET_NATIVE_IP
625	select NET_SOCKETS_SERVICE
626	select NET_SOCKETS
627	help
628	  Enable Websocket backend.
629
630if SHELL_BACKEND_WEBSOCKET
631
632config SHELL_WEBSOCKET_BACKEND_COUNT
633	int "How many Webconsole sessions are supported"
634	default 2
635	range 1 8
636	help
637	  Each connection consumes memory so select the value according to your
638	  needs. Also note that each console session needs unique HTTP endpoint
639	  configured.
640	  Note that if you have only one HTTP endpoint for the websocket console,
641	  setting the this value to 2, allows latter console session to kick out
642	  the previous one. If set this value to 1, then the latter connecting
643	  webconsole session will fail. If you have multiple HTTP endpoints, then
644	  This value should be increased accordingly.
645
646config SHELL_WEBSOCKET_PROMPT
647	string "Displayed prompt name"
648	default ""
649	help
650	  Displayed prompt name for Websocket backend. If prompt is set, the shell will
651	  send two newlines during initialization.
652
653config SHELL_WEBSOCKET_ENDPOINT_URL
654	string "Websocket endpoint URL"
655	default "console"
656	help
657	  What is the HTTP endpoint URL where the client should connect to.
658
659config SHELL_WEBSOCKET_IP_ADDR
660	string "Websocket IP listen address"
661	default ""
662	help
663	  This option is used to configure on which IP address and network interface
664	  the HTTP server is listening. If left empty, then all network interfaces are
665	  listened.
666
667config SHELL_WEBSOCKET_PORT
668	int "Websocket port number"
669	default 443 if NET_SOCKETS_SOCKOPT_TLS
670	default 80
671	help
672	  This option is used to configure on which port websocket is going
673	  to be bound.
674
675config SHELL_WEBSOCKET_LINE_BUF_SIZE
676	int "Websocket line buffer size"
677	default 100
678	help
679	  This option can be used to modify the size of the buffer storing
680	  shell output line, prior to sending it through the network.
681	  Of course an output line can be longer than such size, it just
682	  means sending it will start as soon as it reaches this size.
683	  It really depends on what type of output is expected.
684	  A lot of short lines: better reduce this value. On the contrary,
685	  raise it.
686
687config SHELL_WEBSOCKET_SEND_TIMEOUT
688	int "Websocket line send timeout"
689	default 100
690	help
691	  This option can be used to modify the duration of the timer that kick
692	  in when a line buffer is not empty but did not yet meet the line feed.
693
694module = SHELL_WEBSOCKET
695default-timeout = 100
696source "subsys/shell/Kconfig.template.shell_log_queue_timeout"
697
698default-size = 512
699source "subsys/shell/Kconfig.template.shell_log_queue_size"
700
701choice
702	prompt "Initial log level limit"
703	default SHELL_WEBSOCKET_INIT_LOG_LEVEL_DEFAULT
704
705config SHELL_WEBSOCKET_INIT_LOG_LEVEL_DEFAULT
706	bool "System limit (LOG_MAX_LEVEL)"
707
708config SHELL_WEBSOCKET_INIT_LOG_LEVEL_DBG
709	bool "Debug"
710
711config SHELL_WEBSOCKET_INIT_LOG_LEVEL_INF
712	bool "Info"
713
714config SHELL_WEBSOCKET_INIT_LOG_LEVEL_WRN
715	bool "Warning"
716
717config SHELL_WEBSOCKET_INIT_LOG_LEVEL_ERR
718	bool "Error"
719
720config SHELL_WEBSOCKET_INIT_LOG_LEVEL_NONE
721	bool "None"
722
723endchoice
724
725config SHELL_WEBSOCKET_INIT_LOG_LEVEL
726	int
727	default 0 if SHELL_WEBSOCKET_INIT_LOG_LEVEL_NONE
728	default 1 if SHELL_WEBSOCKET_INIT_LOG_LEVEL_ERR
729	default 2 if SHELL_WEBSOCKET_INIT_LOG_LEVEL_WRN
730	default 3 if SHELL_WEBSOCKET_INIT_LOG_LEVEL_INF
731	default 4 if SHELL_WEBSOCKET_INIT_LOG_LEVEL_DBG
732	default 5 if SHELL_WEBSOCKET_INIT_LOG_LEVEL_DEFAULT
733
734module = SHELL_WEBSOCKET
735module-str = Websocket shell backend
736source "subsys/logging/Kconfig.template.log_config"
737
738endif # SHELL_WEBSOCKET_BACKEND
739
740config SHELL_BACKEND_DUMMY
741	bool "Dummy backend."
742	help
743	  Enable dummy backend which can be used to execute commands with no
744	  need for physical transport interface.
745
746if SHELL_BACKEND_DUMMY
747
748config SHELL_PROMPT_DUMMY
749	string "Displayed prompt name"
750	default "~$ "
751	help
752	  Displayed prompt name for DUMMY backend. If prompt is set, the shell will
753	  send two newlines during initialization.
754
755config SHELL_BACKEND_DUMMY_BUF_SIZE
756	int "Size of dummy buffer size"
757	default 400 if LOG_PRINTK
758	default 300
759	help
760	  This is size of output buffer that will be used by dummy backend, this limits number of
761	  characters that will be captured from command output.
762
763choice
764	prompt "Initial log level limit"
765	default SHELL_DUMMY_INIT_LOG_LEVEL_INF
766
767config SHELL_DUMMY_INIT_LOG_LEVEL_DEFAULT
768	bool "System limit (LOG_MAX_LEVEL)"
769
770config SHELL_DUMMY_INIT_LOG_LEVEL_DBG
771	bool "Debug"
772
773config SHELL_DUMMY_INIT_LOG_LEVEL_INF
774	bool "Info"
775
776config SHELL_DUMMY_INIT_LOG_LEVEL_WRN
777	bool "Warning"
778
779config SHELL_DUMMY_INIT_LOG_LEVEL_ERR
780	bool "Error"
781
782config SHELL_DUMMY_INIT_LOG_LEVEL_NONE
783	bool "None"
784
785endchoice
786
787config SHELL_DUMMY_INIT_LOG_LEVEL
788	int
789	default 0 if SHELL_DUMMY_INIT_LOG_LEVEL_NONE
790	default 1 if SHELL_DUMMY_INIT_LOG_LEVEL_ERR
791	default 2 if SHELL_DUMMY_INIT_LOG_LEVEL_WRN
792	default 3 if SHELL_DUMMY_INIT_LOG_LEVEL_INF
793	default 4 if SHELL_DUMMY_INIT_LOG_LEVEL_DBG
794	default 5 if SHELL_DUMMY_INIT_LOG_LEVEL_DEFAULT
795
796endif # SHELL_BACKEND_DUMMY
797
798config SHELL_BACKEND_ADSP_MEMORY_WINDOW
799	bool "Shell backend implemented over mapped memory window."
800	depends on SOC_FAMILY_INTEL_ADSP
801	help
802	  Enable ADSP memory window backend which can be used to execute commands
803	  from remote host processor that has access to the same memory window.
804
805if SHELL_BACKEND_ADSP_MEMORY_WINDOW
806
807config SHELL_BACKEND_ADSP_MEMORY_WINDOW_PROMPT
808	string "Displayed prompt name"
809	default "~$ "
810	help
811	  Displayed prompt name for ADSP memory window backend. If prompt is set,
812	  the shell will send two newlines during initialization.
813
814config SHELL_BACKEND_ADSP_MEMORY_WINDOW_POLL_INTERVAL
815	int "Poll interval (in microseconds)"
816	default 100
817	help
818	  This option can be used to modify the poll interval the backend uses
819	  to check for new commands.
820
821endif # SHELL_BACKEND_ADSP_MEMORY_WINDOW
822
823endif # SHELL_BACKENDS
824