436 lines
13 KiB
Plaintext
436 lines
13 KiB
Plaintext
# 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
|
|
|
|
# Workaround for not being able to have commas in macro arguments
|
|
DT_CHOSEN_Z_CONSOLE := zephyr,console
|
|
|
|
config UART_CONSOLE_ON_DEV_NAME
|
|
string "Device Name of UART Device for UART Console"
|
|
default "$(dt_chosen_label,$(DT_CHOSEN_Z_CONSOLE))" if HAS_DTS
|
|
default "UART_0"
|
|
depends on (UART_CONSOLE || CONSOLE_SUBSYS)
|
|
help
|
|
This option specifies the name of UART device to be used for
|
|
UART console.
|
|
|
|
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. Make sure
|
|
CONFIG_UART_CONSOLE_ON_DEV_NAME is also set correctly.
|
|
|
|
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 UART for console output. The output
|
|
can be viewed from the USB host via /dev/ttyACM* port. Note that console
|
|
inputs from the USB UART are not functional yet. Also since the USB
|
|
layer currently doesn't support multiple interfaces, this shouldn't be
|
|
selected in conjunction with, say, USB Mass Storage.
|
|
|
|
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
|
|
|
|
# Workaround for not being able to have commas in macro arguments
|
|
DT_CHOSEN_Z_UART_MCUMGR := zephyr,uart-mcumgr
|
|
|
|
config UART_MCUMGR_ON_DEV_NAME
|
|
string "Device Name of UART Device for mcumgr UART"
|
|
default "$(dt_chosen_label,$(DT_CHOSEN_Z_UART_MCUMGR))" if HAS_DTS
|
|
default "UART_0"
|
|
help
|
|
This option specifies the name of UART device to be used
|
|
for mcumgr UART.
|
|
|
|
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 60
|
|
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
|