# Shell badckends configuration options # Copyright (c) 2018 Nordic Semiconductor ASA # SPDX-License-Identifier: Apache-2.0 menuconfig SHELL_BACKENDS bool "Enable shell backends" default y help Enable shell backends. if SHELL_BACKENDS config SHELL_BACKEND_SERIAL bool "Enable serial backend" default y select SERIAL select RING_BUFFER help Enable serial backend. if SHELL_BACKEND_SERIAL config SHELL_PROMPT_UART string "Displayed prompt name" default "uart:~$ " help Displayed prompt name for UART backend. # Workaround for not being able to have commas in macro arguments DT_CHOSEN_Z_SHELL_UART := zephyr,shell-uart config UART_SHELL_ON_DEV_NAME string "Device Name of UART Device for SHELL_BACKEND_SERIAL" default "$(dt_chosen_label,$(DT_CHOSEN_Z_SHELL_UART))" if HAS_DTS default "UART_0" help This option specifies the name of UART device to be used for the SHELL UART backend. # Internal config to enable UART interrupts if supported. config SHELL_BACKEND_SERIAL_INTERRUPT_DRIVEN bool "Interrupt driven" default y depends on SERIAL_SUPPORT_INTERRUPT select UART_INTERRUPT_DRIVEN config SHELL_BACKEND_SERIAL_TX_RING_BUFFER_SIZE int "Set TX ring buffer size" default 8 depends on SHELL_BACKEND_SERIAL_INTERRUPT_DRIVEN help If UART is utilizing DMA transfers then increasing ring buffer size increases transfers length and reduces number of interrupts. config SHELL_BACKEND_SERIAL_RX_RING_BUFFER_SIZE int "Set RX ring buffer size" default 64 help RX ring buffer size impacts accepted latency of handling incoming bytes by shell. If shell input is coming from the keyboard then it is usually enough if ring buffer is few bytes (more than one due to escape sequences). However, if bulk data is transferred it may be required to increase it. config SHELL_BACKEND_SERIAL_RX_POLL_PERIOD int "RX polling period (in milliseconds)" default 10 depends on !SHELL_BACKEND_SERIAL_INTERRUPT_DRIVEN help Determines how often UART is polled for RX byte. module = SHELL_BACKEND_SERIAL default-timeout = 100 source "subsys/shell/Kconfig.template.shell_log_queue_timeout" default-size = 10 source "subsys/shell/Kconfig.template.shell_log_queue_size" choice prompt "Initial log level limit" default SHELL_BACKEND_SERIAL_LOG_LEVEL_DEFAULT config SHELL_BACKEND_SERIAL_LOG_LEVEL_DEFAULT bool "System limit (LOG_MAX_LEVEL)" config SHELL_BACKEND_SERIAL_LOG_LEVEL_DBG bool "Debug" config SHELL_BACKEND_SERIAL_LOG_LEVEL_INF bool "Info" config SHELL_BACKEND_SERIAL_LOG_LEVEL_WRN bool "Warning" config SHELL_BACKEND_SERIAL_LOG_LEVEL_ERR bool "Error" config SHELL_BACKEND_SERIAL_LOG_LEVEL_NONE bool "None" endchoice config SHELL_BACKEND_SERIAL_LOG_LEVEL int default 0 if SHELL_BACKEND_SERIAL_LOG_LEVEL_NONE default 1 if SHELL_BACKEND_SERIAL_LOG_LEVEL_ERR default 2 if SHELL_BACKEND_SERIAL_LOG_LEVEL_WRN default 3 if SHELL_BACKEND_SERIAL_LOG_LEVEL_INF default 4 if SHELL_BACKEND_SERIAL_LOG_LEVEL_DBG default 5 if SHELL_BACKEND_SERIAL_LOG_LEVEL_DEFAULT endif # SHELL_BACKEND_SERIAL config SHELL_BACKEND_RTT bool "Enable RTT backend" select CONSOLE select RTT_CONSOLE depends on USE_SEGGER_RTT help Enable RTT backend. if SHELL_BACKEND_RTT config SHELL_PROMPT_RTT string "Displayed prompt name" default "rtt:~$ " help Displayed prompt name for RTT backend. config SHELL_RTT_RX_POLL_PERIOD int "RX polling period (in milliseconds)" default 10 help Determines how often RTT is polled for RX byte. module = SHELL_BACKEND_RTT default-timeout = 100 source "subsys/shell/Kconfig.template.shell_log_queue_timeout" default-size = 10 source "subsys/shell/Kconfig.template.shell_log_queue_size" choice prompt "Initial log level limit" default SHELL_RTT_INIT_LOG_LEVEL_DEFAULT config SHELL_RTT_INIT_LOG_LEVEL_DEFAULT bool "System limit (LOG_MAX_LEVEL)" config SHELL_RTT_INIT_LOG_LEVEL_DBG bool "Debug" config SHELL_RTT_INIT_LOG_LEVEL_INF bool "Info" config SHELL_RTT_INIT_LOG_LEVEL_WRN bool "Warning" config SHELL_RTT_INIT_LOG_LEVEL_ERR bool "Error" config SHELL_RTT_INIT_LOG_LEVEL_NONE bool "None" endchoice config SHELL_RTT_INIT_LOG_LEVEL int default 0 if SHELL_RTT_INIT_LOG_LEVEL_NONE default 1 if SHELL_RTT_INIT_LOG_LEVEL_ERR default 2 if SHELL_RTT_INIT_LOG_LEVEL_WRN default 3 if SHELL_RTT_INIT_LOG_LEVEL_INF default 4 if SHELL_RTT_INIT_LOG_LEVEL_DBG default 5 if SHELL_RTT_INIT_LOG_LEVEL_DEFAULT module = SHELL_RTT module-str = RTT shell backend source "subsys/logging/Kconfig.template.log_config" endif # SHELL_BACKEND_RTT config SHELL_BACKEND_TELNET bool "Enable TELNET backend." depends on NET_TCP depends on NET_IPV4 || NET_IPV6 help Enable TELNET backend. if SHELL_BACKEND_TELNET config SHELL_PROMPT_TELNET string "Displayed prompt name" default "~$ " help Displayed prompt name for TELNET backend. config SHELL_TELNET_PORT int "Telnet port number" default 23 help This option is used to configure on which port telnet is going to be bound. config SHELL_TELNET_LINE_BUF_SIZE int "Telnet line buffer size" default 80 help This option can be used to modify the size of the buffer storing shell output line, prior to sending it through the network. Of course an output line can be longer than such size, it just means sending it will start as soon as it reaches this size. It really depends on what type of output is expected. A lot of short lines: better reduce this value. On the contrary, raise it. config SHELL_TELNET_SEND_TIMEOUT int "Telnet line send timeout" default 100 help This option can be used to modify the duration of the timer that kick in when a line buffer is not empty but did not yet meet the line feed. config SHELL_TELNET_SUPPORT_COMMAND bool "Add support for telnet commands (IAC) [Experimental]" help Current support is so limited it's not interesting to enable it. However, if proven to be needed at some point, it will be possible to extend such support. module = SHELL_TELNET default-timeout = 100 source "subsys/shell/Kconfig.template.shell_log_queue_timeout" default-size = 10 source "subsys/shell/Kconfig.template.shell_log_queue_size" choice prompt "Initial log level limit" default SHELL_TELNET_INIT_LOG_LEVEL_DEFAULT config SHELL_TELNET_INIT_LOG_LEVEL_DEFAULT bool "System limit (LOG_MAX_LEVEL)" config SHELL_TELNET_INIT_LOG_LEVEL_DBG bool "Debug" config SHELL_TELNET_INIT_LOG_LEVEL_INF bool "Info" config SHELL_TELNET_INIT_LOG_LEVEL_WRN bool "Warning" config SHELL_TELNET_INIT_LOG_LEVEL_ERR bool "Error" config SHELL_TELNET_INIT_LOG_LEVEL_NONE bool "None" endchoice config SHELL_TELNET_INIT_LOG_LEVEL int default 0 if SHELL_TELNET_INIT_LOG_LEVEL_NONE default 1 if SHELL_TELNET_INIT_LOG_LEVEL_ERR default 2 if SHELL_TELNET_INIT_LOG_LEVEL_WRN default 3 if SHELL_TELNET_INIT_LOG_LEVEL_INF default 4 if SHELL_TELNET_INIT_LOG_LEVEL_DBG default 5 if SHELL_TELNET_INIT_LOG_LEVEL_DEFAULT module = SHELL_TELNET module-str = TELNET shell backend source "subsys/logging/Kconfig.template.log_config" endif # SHELL_TELNET_BACKEND config SHELL_BACKEND_DUMMY bool "Enable dummy backend." help Enable dummy backend which can be used to execute commands with no need for physical transport interface. config SHELL_PROMPT_DUMMY string "Displayed prompt name" depends on SHELL_BACKEND_DUMMY default "~$ " help Displayed prompt name for DUMMY backend. endif # SHELL_BACKENDS