| # Console driver configuration options |
| |
| # Copyright (c) 2014-2015 Wind River Systems, Inc. |
| # Copyright (c) 2016 Cadence Design Systems, Inc. |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| # Setting shared by different subsystems |
| |
| menuconfig CONSOLE |
| bool "Console drivers" |
| |
| if CONSOLE |
| |
| config CONSOLE_INPUT_MAX_LINE_LEN |
| int "Console maximum input line length" |
| default 128 |
| help |
| This option can be used to modify the maximum length a console input |
| can be. |
| |
| config CONSOLE_HAS_DRIVER |
| bool |
| help |
| This is an option to be enabled by console drivers to signal |
| that some kind of console exists. |
| |
| config CONSOLE_HANDLER |
| bool "Enable console input handler" |
| depends on UART_CONSOLE && SERIAL_SUPPORT_INTERRUPT |
| select UART_INTERRUPT_DRIVEN |
| help |
| This option enables console input handler allowing to write simple |
| interaction between serial console and the OS. |
| |
| config UART_CONSOLE |
| bool "Use UART for console" |
| depends on SERIAL && SERIAL_HAS_DRIVER |
| select CONSOLE_HAS_DRIVER |
| help |
| Enable this option to use one UART for console. |
| |
| config UART_CONSOLE_INIT_PRIORITY |
| int "Init priority" |
| default 95 if USB_UART_CONSOLE |
| default 60 |
| depends on UART_CONSOLE |
| help |
| Device driver initialization priority. |
| Console has to be initialized after the UART driver |
| it uses. |
| |
| config UART_CONSOLE_DEBUG_SERVER_HOOKS |
| bool "Debug server hooks in debug console" |
| depends on UART_CONSOLE |
| help |
| This option allows a debug server agent such as GDB to take over the |
| handling of traffic that goes through the console logic. The debug |
| server looks at characters received and decides to handle them itself if |
| they are some sort of control characters, or let the regular console |
| code handle them if they are of no special significance to it. |
| |
| config UART_CONSOLE_MCUMGR |
| bool "Enable UART console mcumgr passthrough" |
| depends on UART_CONSOLE |
| help |
| Enables the UART console to receive mcumgr frames for image upgrade |
| and device management. When enabled, the UART console does not |
| process mcumgr frames, but it hands them up to a higher level module |
| (e.g., the shell). If unset, incoming mcumgr frames are dropped. |
| |
| config UART_CONSOLE_INPUT_EXPIRED |
| bool "Enable support for UART console input expired mechanism" |
| default y |
| depends on UART_CONSOLE && PM |
| help |
| This option allows a notification to the power management module that |
| the module for UART console is in use now. If the interval of console |
| module doesn't receive any input message exceeds expired timeout, such |
| as UART_CONSOLE_INPUT_EXPIRED_TIMEOUT, the power management module is |
| allowed to enter sleep/deep sleep state and turn off the clock of UART |
| console module. This mechanism gives a window in which the users can |
| organize input message if CONFIG_PM is enabled. |
| |
| config UART_CONSOLE_INPUT_EXPIRED_TIMEOUT |
| int "Fixed amount of time to keep the UART console in use flag true" |
| default 15000 |
| depends on UART_CONSOLE_INPUT_EXPIRED |
| help |
| Fixed amount of time which unit is milliseconds to keep the UART |
| console in use flag true. |
| |
| config USB_UART_CONSOLE |
| bool "Use USB port for console outputs" |
| select UART_CONSOLE |
| select USB_CDC_ACM |
| help |
| Enable this option to use the USB CDC ACM class for console. |
| As for the console driver, this option only changes the initialization |
| level. |
| |
| config RAM_CONSOLE |
| bool "Use RAM console" |
| select CONSOLE_HAS_DRIVER |
| help |
| Emit console messages to a RAM buffer "ram_console" which can |
| be examined at runtime with a debugger. Useful in board bring-up |
| if there aren't any working serial drivers. |
| |
| config RAM_CONSOLE_BUFFER_SIZE |
| int "Ram Console buffer size" |
| default 1024 |
| depends on RAM_CONSOLE |
| help |
| Size of the RAM console buffer. Messages will wrap around if the |
| length is exceeded. |
| |
| config RTT_CONSOLE |
| bool "Use RTT console" |
| depends on USE_SEGGER_RTT |
| select CONSOLE_HAS_DRIVER |
| help |
| Emit console messages to a RAM buffer that is then read by the |
| Segger J-Link software and displayed on a computer in real-time. |
| Requires support for Segger J-Link on the companion IC onboard. |
| |
| if RTT_CONSOLE |
| |
| config RTT_TX_RETRY_CNT |
| int "Number of TX retries" |
| default 2 |
| help |
| Number of TX retries before dropping the byte and assuming that |
| RTT session is inactive. |
| |
| config RTT_TX_RETRY_DELAY_MS |
| int "Delay between TX retries in milliseconds" |
| default 2 |
| 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 RTT_TX_RETRY_IN_INTERRUPT |
| bool "Busy wait in the interrupt context for TX retry" |
| help |
| If enabled RTT console will busy wait between TX retries when console |
| assumes that RTT session is active. In case of heavy traffic data can |
| be lost and it may be necessary to increase delay or number of |
| retries. |
| |
| endif |
| |
| config IPM_CONSOLE_SENDER |
| bool "Inter-processor Mailbox console sender" |
| select CONSOLE_HAS_DRIVER |
| help |
| Enable the sending side of IPM console |
| |
| config IPM_CONSOLE_RECEIVER |
| bool "Inter-processor Mailbox console receiver" |
| select RING_BUFFER |
| help |
| Enable the receiving side of IPM console |
| |
| config IPM_CONSOLE_STACK_SIZE |
| int "Stack size for IPM console receiver thread" |
| depends on IPM_CONSOLE_RECEIVER |
| default 2048 if COVERAGE |
| default 512 |
| help |
| Each instance of the IPM console receiver driver creates a worker |
| thread to print out incoming messages from the remote CPU. Specify the |
| stack size for these threads here. |
| |
| config IPM_CONSOLE |
| bool "Inter-processor Mailbox console" |
| depends on IPM |
| select CONSOLE_HAS_DRIVER |
| help |
| Enable console over Inter-processor Mailbox. |
| |
| # Workaround for not being able to have commas in macro arguments |
| DT_CHOSEN_Z_IPM_CONSOLE := zephyr,console |
| |
| config IPM_CONSOLE_ON_DEV_NAME |
| string "IPM device name used by console" |
| default "$(dt_chosen_label,$(DT_CHOSEN_Z_IPM_CONSOLE))" if HAS_DTS |
| default "IPM_0" |
| depends on IPM_CONSOLE |
| help |
| IPM device name used by IPM console driver. |
| |
| config IPM_CONSOLE_LINE_BUF_LEN |
| int "IPM console line buffer length" |
| default 128 |
| depends on IPM_CONSOLE |
| help |
| IPM console line buffer length specify amount of the buffer |
| where characters are stored before sending the whole line. |
| |
| config UART_PIPE |
| bool "Enable pipe UART driver" |
| select UART_INTERRUPT_DRIVEN |
| help |
| Enable pipe UART driver. This driver allows application to communicate |
| over UART with custom defined protocol. Driver doesn't inspect received |
| data (as contrary to console UART driver) and all aspects of received |
| protocol data are handled by application provided callback. |
| |
| # Workaround for not being able to have commas in macro arguments |
| DT_CHOSEN_Z_UART_PIPE := zephyr,uart-pipe |
| |
| config UART_PIPE_ON_DEV_NAME |
| string "Device Name of UART Device for pipe UART" |
| default "$(dt_chosen_label,$(DT_CHOSEN_Z_UART_PIPE))" if HAS_DTS |
| default "UART_0" |
| depends on UART_PIPE |
| help |
| This option specifies the name of UART device to be used |
| for pipe UART. |
| |
| config UART_MCUMGR |
| bool "Enable mcumgr UART driver" |
| select UART_INTERRUPT_DRIVEN |
| help |
| Enable the mcumgr UART driver. This driver allows the application to |
| communicate over UART using the mcumgr protocol for image upgrade and |
| device management. The driver doesn't inspect received data (as |
| contrary to console UART driver) and all aspects of received protocol |
| data are handled by an application provided callback. |
| |
| if UART_MCUMGR |
| |
| config UART_MCUMGR_RX_BUF_SIZE |
| int "Size of receive buffer for mcumgr fragments received over UART, in bytes" |
| default 128 |
| help |
| Specifies the size of the mcumgr UART receive buffer, in bytes. This |
| value must be large enough to accommodate any line sent by an mcumgr |
| client. |
| |
| config UART_MCUMGR_RX_BUF_COUNT |
| int "Number of receive buffers for mcumgr fragments received over UART" |
| default 2 |
| help |
| Specifies the number of the mcumgr UART receive buffers. Receive |
| buffers hold received mcumgr fragments prior to reassembly. This |
| setting's value must satisfy the following relation: |
| UART_MCUMGR_RX_BUF_COUNT * UART_MCUMGR_RX_BUF_SIZE >= |
| MCUMGR_SMP_UART_MTU |
| |
| endif # UART_MCUMGR |
| |
| config XTENSA_SIM_CONSOLE |
| bool "Use Xtensa simulator console" |
| depends on SIMULATOR_XTENSA |
| select CONSOLE_HAS_DRIVER |
| default y |
| help |
| Use simulator console to print messages. |
| |
| config NATIVE_POSIX_CONSOLE |
| bool "Use the host terminal for console" |
| depends on ARCH_POSIX |
| select CONSOLE_HAS_DRIVER |
| help |
| Use the host terminal (where the native_posix binary was launched) for the |
| Zephyr console |
| |
| config NATIVE_POSIX_STDIN_CONSOLE |
| bool "Use the host terminal stdin" |
| depends on NATIVE_POSIX_CONSOLE |
| help |
| No current use. Kept only as there is plans to start using these |
| drivers with the shell |
| |
| config NATIVE_STDIN_POLL_PERIOD |
| int "Polling period for stdin" |
| depends on NATIVE_POSIX_STDIN_CONSOLE |
| default 20 |
| help |
| In ms, polling period for stdin |
| |
| config NATIVE_POSIX_STDOUT_CONSOLE |
| bool "Print to the host terminal stdout" |
| depends on NATIVE_POSIX_CONSOLE |
| default y |
| help |
| Zephyr's printk messages will be directed to the host terminal stdout. |
| |
| config XTENSA_CONSOLE_INIT_PRIORITY |
| int "Init priority" |
| default 60 |
| depends on XTENSA_SIM_CONSOLE |
| help |
| Device driver initialization priority. |
| |
| config NATIVE_POSIX_CONSOLE_INIT_PRIORITY |
| int "Init priority" |
| default 99 |
| depends on NATIVE_POSIX_CONSOLE |
| help |
| Device driver initialization priority. |
| |
| config SEMIHOST_CONSOLE |
| bool "Use semihosting for console" |
| select CONSOLE_HAS_DRIVER |
| depends on CPU_CORTEX_M || ARM64 |
| help |
| Enable this option to use semihosting for console. |
| Semihosting is a mechanism that enables code running on an ARM target |
| to communicate and use the Input/Output facilities on a host computer |
| that is running a debugger. |
| Additional information can be found in: |
| https://developer.arm.com/docs/dui0471/k/what-is-semihosting/what-is-semihosting |
| This option is compatible with hardware and with QEMU, through the |
| (automatic) use of the -semihosting-config switch when invoking it. |
| |
| module = UART_CONSOLE |
| module-str = UART console |
| source "subsys/logging/Kconfig.template.log_config" |
| |
| source "drivers/console/Kconfig.gsm_mux" |
| |
| config UART_MUX |
| bool "Enable UART muxing (GSM 07.10) support [EXPERIMENTAL]" |
| depends on SERIAL_SUPPORT_INTERRUPT && GSM_MUX |
| select UART_INTERRUPT_DRIVEN |
| help |
| Enable this option to create UART muxer that run over a physical |
| UART. The GSM 07.10 muxing protocol is used to separate the data |
| between these muxed UARTs. |
| |
| if UART_MUX |
| |
| config UART_MUX_INIT_PRIORITY |
| int "Init priority" |
| default 95 |
| help |
| Device driver initialization priority. UART mux has to be |
| initialized after the UART driver it uses. |
| |
| config UART_MUX_DEVICE_NAME |
| string "UART mux device name template" |
| default "GSM" |
| help |
| Device name template for the UART mux Devices. First device would |
| have name $(UART_MUX_DEVICE_NAME)_0, etc. User will access muxed |
| UART using this name. |
| |
| config UART_MUX_RINGBUF_SIZE |
| int "UART mux ring buffer size" |
| default 256 |
| help |
| UART mux ring buffer size when passing data from RX ISR to worker |
| thread that will do the unmuxing. |
| |
| config UART_MUX_TEMP_BUF_SIZE |
| int "Size of the temp buffer when reading data from real UART" |
| default 32 |
| help |
| Size of the temporary RX buffer in receiving ISR. |
| |
| config UART_MUX_DEVICE_COUNT |
| int "Number of UART mux devices (DLCIs)" |
| default GSM_MUX_DLCI_MAX |
| range 1 64 |
| help |
| Number of instances of UART muxes. Default value is set by |
| maximum number of DLCIs (Data Link Connection Identifiers) |
| configured in the system. |
| |
| config UART_MUX_REAL_DEVICE_COUNT |
| int "Number of real UART devices" |
| default 1 |
| help |
| Tells how many real UART devices there are. Typically there is |
| only one UART and the muxed UARTs are run on top of that. If you have |
| two modems for example, then you would need to increase this to two. |
| |
| config UART_MUX_RX_STACK_SIZE |
| int "Size of the stack allocated for receiving data from UART" |
| default 512 |
| help |
| Sets the stack size which will be used by the PPP RX workqueue. |
| |
| config UART_MUX_RX_PRIORITY |
| int "RX workqueue thread priority" |
| default 7 |
| help |
| Sets the priority of the RX workqueue thread. |
| |
| module = UART_MUX |
| module-str = UART mux |
| source "subsys/logging/Kconfig.template.log_config" |
| |
| endif # UART_MUX |
| |
| config UART_MUX_VERBOSE_DEBUG |
| bool "Print hexdump of sent and received packets" |
| depends on UART_MUX_LOG_LEVEL_DBG |
| help |
| As there might be lot of debug output printed, only enable |
| this if really needed. |
| |
| |
| endif # CONSOLE |