| # Shell backends configuration options |
| |
| # Copyright (c) 2018 Nordic Semiconductor ASA |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| menuconfig SHELL_BACKENDS |
| bool "Shell backends" |
| default y |
| help |
| Enable shell backends. |
| |
| if SHELL_BACKENDS |
| |
| # Workaround for not being able to have commas in macro arguments |
| DT_CHOSEN_Z_SHELL_UART := zephyr,shell-uart |
| |
| config SHELL_BACKEND_SERIAL |
| bool "Serial backend" |
| # Serial (UART) requires interrupts and the RTT backend cannot be used from an ISR context. |
| default n if SHELL_BACKEND_RTT |
| default "$(dt_chosen_enabled,$(DT_CHOSEN_Z_SHELL_UART))" |
| select SERIAL |
| select RING_BUFFER |
| help |
| Enable serial backend. |
| |
| if SHELL_BACKEND_SERIAL |
| |
| config SHELL_BACKEND_SERIAL_INIT_PRIORITY |
| int "Initialization priority" |
| default 55 if ACPI |
| default 0 |
| range 0 99 |
| help |
| Initialization priority for UART backend. This must be bigger than |
| the initialization priority of the used serial device. |
| |
| config SHELL_PROMPT_UART |
| string "Displayed prompt name" |
| default "uart:~$ " |
| help |
| Displayed prompt name for UART backend. If prompt is set, the shell will |
| send two newlines during initialization. |
| |
| config SHELL_BACKEND_SERIAL_INTERRUPT_DRIVEN |
| bool "Interrupt driven" |
| default y |
| depends on SERIAL_SUPPORT_INTERRUPT |
| |
| config SHELL_ASYNC_API |
| bool "Asynchronous shell API" |
| default n |
| depends on UART_ASYNC_API |
| help |
| This option enables asynchronous shell API. |
| |
| choice SHELL_BACKEND_SERIAL_API |
| prompt "Mode" |
| default SHELL_BACKEND_SERIAL_API_ASYNC if SHELL_ASYNC_API |
| default SHELL_BACKEND_SERIAL_API_INTERRUPT_DRIVEN if SHELL_BACKEND_SERIAL_INTERRUPT_DRIVEN |
| default SHELL_BACKEND_SERIAL_API_POLLING |
| |
| config SHELL_BACKEND_SERIAL_API_POLLING |
| prompt "Polling" |
| |
| config SHELL_BACKEND_SERIAL_API_INTERRUPT_DRIVEN |
| bool "Interrupt driven" |
| depends on SERIAL_SUPPORT_INTERRUPT |
| select UART_INTERRUPT_DRIVEN |
| |
| |
| config SHELL_BACKEND_SERIAL_API_ASYNC |
| bool "Asynchronous" |
| depends on SERIAL_SUPPORT_ASYNC |
| select UART_ASYNC_RX_HELPER |
| |
| endchoice |
| |
| config SHELL_BACKEND_SERIAL_TX_RING_BUFFER_SIZE |
| int "Set TX ring buffer size" |
| default 8 |
| depends on SHELL_BACKEND_SERIAL_API_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" |
| depends on SHELL_BACKEND_SERIAL_API_INTERRUPT_DRIVEN || SHELL_BACKEND_SERIAL_API_POLLING |
| default 256 if MCUMGR_TRANSPORT_SHELL |
| 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. |
| |
| if SHELL_BACKEND_SERIAL_API_ASYNC |
| |
| config SHELL_BACKEND_SERIAL_ASYNC_RX_TIMEOUT |
| int "RX inactivity timeout (in microseconds)" |
| default 10000 |
| help |
| Inactivity timeout after which received data is reported. |
| |
| config SHELL_BACKEND_SERIAL_ASYNC_RX_BUFFER_COUNT |
| int "Number of RX buffers" |
| default 4 |
| range 2 64 |
| help |
| Number of RX buffers. Some UART driver implementations changes buffers |
| on timeout so this number should be big enough to cover handling on |
| time incoming data. 4 should be enough for almost all the cases unless |
| CPU load is high and there is very high shell thread latency. |
| |
| config SHELL_BACKEND_SERIAL_ASYNC_RX_BUFFER_SIZE |
| int "Size of the RX buffer" |
| default 16 |
| help |
| Size of a single RX buffer. Together with buffer count it defines the |
| space that can hold RX data. It may be decreased if shell input is |
| slow and may need to be increased if long messages are pasted directly |
| to the shell prompt. |
| |
| endif # SHELL_BACKEND_SERIAL_API_ASYNC |
| |
| config SHELL_BACKEND_SERIAL_RX_POLL_PERIOD |
| int "RX polling period (in milliseconds)" |
| default 10 |
| depends on SHELL_BACKEND_SERIAL_API_POLLING |
| help |
| Determines how often UART is polled for RX byte. |
| |
| config SHELL_BACKEND_SERIAL_CHECK_DTR |
| bool "Check DTR signal before TX" |
| depends on SHELL_BACKEND_SERIAL_API_INTERRUPT_DRIVEN |
| depends on UART_LINE_CTRL |
| help |
| Check DTR signal before TX. |
| |
| module = SHELL_BACKEND_SERIAL |
| default-timeout = 100 |
| source "subsys/shell/Kconfig.template.shell_log_queue_timeout" |
| |
| default-size = 512 |
| 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 "RTT backend" |
| select CONSOLE |
| select RTT_CONSOLE |
| select SEGGER_RTT_CUSTOM_LOCKING |
| 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. If prompt is set, the shell will |
| send two newlines during initialization. |
| |
| config SHELL_BACKEND_RTT_BUFFER |
| int "Buffer number used for shell input and output." |
| range 0 SEGGER_RTT_MAX_NUM_UP_BUFFERS |
| default 0 |
| help |
| Select index of up-buffer used for shell output, by default it uses |
| terminal up-buffer and its settings. |
| |
| config SHELL_BACKEND_RTT_RETRY_CNT |
| int "Number of retries" |
| default 4 |
| help |
| Number of TX retries before dropping the data and assuming that |
| RTT session is inactive. |
| |
| config SHELL_BACKEND_RTT_RETRY_DELAY_MS |
| int "Delay between TX retries in milliseconds" |
| default 5 |
| help |
| Sleep period between TX retry attempts. During RTT session, host pulls |
| data periodically. Period starts from 1-2 milliseconds and can be |
| increased if traffic on RTT increases (also from host to device). In |
| case of heavy traffic data can be lost and it may be necessary to |
| increase delay or number of retries. |
| |
| 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 = 512 |
| 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_MQTT |
| bool "MQTT backend" |
| depends on NET_TCP |
| depends on NET_IPV4 |
| depends on NETWORKING |
| select DNS_RESOLVER |
| select HWINFO |
| select MQTT_LIB |
| select NET_MGMT |
| select NET_MGMT_EVENT |
| help |
| Enable MQTT backend. |
| |
| if SHELL_BACKEND_MQTT |
| |
| config SHELL_MQTT_SERVER_ADDR |
| string "MQTT server address" |
| default "192.168.0.100" |
| help |
| MQTT server address. |
| |
| config SHELL_MQTT_SERVER_PORT |
| int "MQTT server port" |
| default 1883 |
| help |
| MQTT server port. |
| |
| config SHELL_MQTT_SERVER_USERNAME |
| string "MQTT server username" |
| help |
| MQTT server username. |
| |
| config SHELL_MQTT_SERVER_PASSWORD |
| string "MQTT server password" |
| help |
| MQTT server password. |
| |
| config SHELL_MQTT_RX_BUF_SIZE |
| int "RX buffer size" |
| default 256 |
| help |
| Buffer size for the MQTT data reception. |
| |
| config SHELL_MQTT_TX_BUF_SIZE |
| int "TX buffer size" |
| range 32 65535 |
| default 256 |
| help |
| Buffer size for the MQTT data transmission. |
| |
| module = SHELL_BACKEND_MQTT |
| default-timeout = 100 |
| source "subsys/shell/Kconfig.template.shell_log_queue_timeout" |
| |
| default-size = 512 |
| source "subsys/shell/Kconfig.template.shell_log_queue_size" |
| |
| choice |
| prompt "Initial log level limit" |
| default SHELL_MQTT_INIT_LOG_LEVEL_DEFAULT |
| |
| config SHELL_MQTT_INIT_LOG_LEVEL_DEFAULT |
| bool "System limit (LOG_MAX_LEVEL)" |
| |
| config SHELL_MQTT_INIT_LOG_LEVEL_DBG |
| bool "Debug" |
| |
| config SHELL_MQTT_INIT_LOG_LEVEL_INF |
| bool "Info" |
| |
| config SHELL_MQTT_INIT_LOG_LEVEL_WRN |
| bool "Warning" |
| |
| config SHELL_MQTT_INIT_LOG_LEVEL_ERR |
| bool "Error" |
| |
| config SHELL_MQTT_INIT_LOG_LEVEL_NONE |
| bool "None" |
| |
| endchoice # SHELL_MQTT_INIT_LOG_LEVEL |
| |
| config SHELL_MQTT_INIT_LOG_LEVEL |
| int |
| default 0 if SHELL_MQTT_INIT_LOG_LEVEL_NONE |
| default 1 if SHELL_MQTT_INIT_LOG_LEVEL_ERR |
| default 2 if SHELL_MQTT_INIT_LOG_LEVEL_WRN |
| default 3 if SHELL_MQTT_INIT_LOG_LEVEL_INF |
| default 4 if SHELL_MQTT_INIT_LOG_LEVEL_DBG |
| default 5 if SHELL_MQTT_INIT_LOG_LEVEL_DEFAULT |
| |
| module = SHELL_MQTT |
| module-str = MQTT shell backend |
| source "subsys/logging/Kconfig.template.log_config" |
| |
| endif # SHELL_BACKEND_MQTT |
| |
| config SHELL_BACKEND_RPMSG |
| bool "RPMsg backend." |
| depends on OPENAMP |
| help |
| Enable RPMsg backend. |
| |
| if SHELL_BACKEND_RPMSG |
| |
| config SHELL_PROMPT_RPMSG |
| string "Displayed prompt name" |
| default "ipc:~$ " |
| help |
| Displayed prompt name for RPMsg backend. If prompt is set, the shell will |
| send two newlines during initialization. |
| |
| config SHELL_RPMSG_SERVICE_NAME |
| string "Service name" |
| default "rpmsg-tty" |
| help |
| The service name associated with the RPMsg endpoint. |
| |
| config SHELL_RPMSG_SRC_ADDR |
| hex "Local address" |
| default 0xffffffff # The ANY address |
| help |
| Local address of the RPMsg endpoint. |
| |
| config SHELL_RPMSG_DST_ADDR |
| hex "Remote address" |
| default 0xffffffff # The ANY address |
| help |
| Target address of the RPMsg endpoint. |
| |
| config SHELL_RPMSG_MAX_RX |
| int "Receive buffer size" |
| default 10 |
| help |
| The maximum number of received messages to be queued. |
| |
| module = SHELL_BACKEND_RPMSG |
| default-timeout = 100 |
| source "subsys/shell/Kconfig.template.shell_log_queue_timeout" |
| |
| default-size = 512 |
| source "subsys/shell/Kconfig.template.shell_log_queue_size" |
| |
| choice |
| prompt "Initial log level limit" |
| default SHELL_RPMSG_INIT_LOG_LEVEL_DEFAULT |
| |
| config SHELL_RPMSG_INIT_LOG_LEVEL_DEFAULT |
| bool "System limit (LOG_MAX_LEVEL)" |
| |
| config SHELL_RPMSG_INIT_LOG_LEVEL_DBG |
| bool "Debug" |
| |
| config SHELL_RPMSG_INIT_LOG_LEVEL_INF |
| bool "Info" |
| |
| config SHELL_RPMSG_INIT_LOG_LEVEL_WRN |
| bool "Warning" |
| |
| config SHELL_RPMSG_INIT_LOG_LEVEL_ERR |
| bool "Error" |
| |
| config SHELL_RPMSG_INIT_LOG_LEVEL_NONE |
| bool "None" |
| |
| endchoice # SHELL_RPMSG_INIT_LOG_LEVEL |
| |
| config SHELL_RPMSG_INIT_LOG_LEVEL |
| int |
| default 0 if SHELL_RPMSG_INIT_LOG_LEVEL_NONE |
| default 1 if SHELL_RPMSG_INIT_LOG_LEVEL_ERR |
| default 2 if SHELL_RPMSG_INIT_LOG_LEVEL_WRN |
| default 3 if SHELL_RPMSG_INIT_LOG_LEVEL_INF |
| default 4 if SHELL_RPMSG_INIT_LOG_LEVEL_DBG |
| default 5 if SHELL_RPMSG_INIT_LOG_LEVEL_DEFAULT |
| |
| module = SHELL_RPMSG |
| module-str = RPMsg shell backend |
| source "subsys/logging/Kconfig.template.log_config" |
| |
| endif # SHELL_BACKEND_RPMSG |
| |
| config SHELL_BACKEND_TELNET |
| bool "TELNET backend." |
| depends on NET_TCP |
| depends on NET_IPV4 || NET_IPV6 |
| select NET_SOCKETS_SERVICE |
| select NET_SOCKETS |
| help |
| Enable TELNET backend. |
| |
| if SHELL_BACKEND_TELNET |
| |
| config SHELL_TELNET_INIT_PRIORITY |
| int "Initialization priority" |
| default 95 |
| range NET_SOCKETS_SERVICE_INIT_PRIO 99 |
| help |
| Initialization priority for telnet shell backend. This must be higher |
| than socket service initialization priority, as socket service has to |
| be initialized earlier. |
| |
| config SHELL_PROMPT_TELNET |
| string "Displayed prompt name" |
| default "~$ " |
| help |
| Displayed prompt name for TELNET backend. If prompt is set, the shell will |
| send two newlines during initialization. |
| |
| 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]" |
| select 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. It does have support for echo and "character |
| at a time" mode, which enable the history and line-editing features |
| of the shell. |
| IMPORTANT: This will increase network usage as a TCP packet will be |
| sent each time a character is typed in the telnet client. |
| |
| module = SHELL_TELNET |
| default-timeout = 100 |
| source "subsys/shell/Kconfig.template.shell_log_queue_timeout" |
| |
| default-size = 512 |
| 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 "Dummy backend." |
| help |
| Enable dummy backend which can be used to execute commands with no |
| need for physical transport interface. |
| |
| if SHELL_BACKEND_DUMMY |
| |
| config SHELL_PROMPT_DUMMY |
| string "Displayed prompt name" |
| default "~$ " |
| help |
| Displayed prompt name for DUMMY backend. If prompt is set, the shell will |
| send two newlines during initialization. |
| |
| config SHELL_BACKEND_DUMMY_BUF_SIZE |
| int "Size of dummy buffer size" |
| default 400 if LOG_PRINTK |
| default 300 |
| help |
| This is size of output buffer that will be used by dummy backend, this limits number of |
| characters that will be captured from command output. |
| |
| choice |
| prompt "Initial log level limit" |
| default SHELL_DUMMY_INIT_LOG_LEVEL_INF |
| |
| config SHELL_DUMMY_INIT_LOG_LEVEL_DEFAULT |
| bool "System limit (LOG_MAX_LEVEL)" |
| |
| config SHELL_DUMMY_INIT_LOG_LEVEL_DBG |
| bool "Debug" |
| |
| config SHELL_DUMMY_INIT_LOG_LEVEL_INF |
| bool "Info" |
| |
| config SHELL_DUMMY_INIT_LOG_LEVEL_WRN |
| bool "Warning" |
| |
| config SHELL_DUMMY_INIT_LOG_LEVEL_ERR |
| bool "Error" |
| |
| config SHELL_DUMMY_INIT_LOG_LEVEL_NONE |
| bool "None" |
| |
| endchoice |
| |
| config SHELL_DUMMY_INIT_LOG_LEVEL |
| int |
| default 0 if SHELL_DUMMY_INIT_LOG_LEVEL_NONE |
| default 1 if SHELL_DUMMY_INIT_LOG_LEVEL_ERR |
| default 2 if SHELL_DUMMY_INIT_LOG_LEVEL_WRN |
| default 3 if SHELL_DUMMY_INIT_LOG_LEVEL_INF |
| default 4 if SHELL_DUMMY_INIT_LOG_LEVEL_DBG |
| default 5 if SHELL_DUMMY_INIT_LOG_LEVEL_DEFAULT |
| |
| endif # SHELL_BACKEND_DUMMY |
| |
| endif # SHELL_BACKENDS |