370 lines
11 KiB
Plaintext
370 lines
11 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
|
|
|
|
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 "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 CONSOLE_INIT_PRIORITY
|
|
int "Console init priority"
|
|
default 95 if UART_MUX
|
|
default 60 if UART_CONSOLE || XTENSA_SIM_CONSOLE
|
|
default KERNEL_INIT_PRIORITY_DEFAULT
|
|
help
|
|
Console driver device initialization priority.
|
|
|
|
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_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 "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 "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 JAILHOUSE_DEBUG_CONSOLE
|
|
bool "Use JAILHOUSE_DEBUG console"
|
|
select CONSOLE_HAS_DRIVER
|
|
depends on ARM64
|
|
help
|
|
Emit console messages to a jailhouse hypervisor debug console.
|
|
Useful in board bring-up if there aren't any working serial
|
|
drivers.
|
|
|
|
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.
|
|
|
|
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_MCUMGR
|
|
bool "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_TRANSPORT_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 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 SEMIHOST
|
|
help
|
|
Enable this option to use semihosting for console.
|
|
See SEMIHOST for a more complete description of semihosting.
|
|
|
|
module = UART_CONSOLE
|
|
module-str = UART console
|
|
source "subsys/logging/Kconfig.template.log_config"
|
|
|
|
source "drivers/console/Kconfig.gsm_mux"
|
|
|
|
config UART_MUX
|
|
bool "UART muxing (GSM 07.10) support [EXPERIMENTAL]"
|
|
depends on SERIAL_SUPPORT_INTERRUPT && GSM_MUX
|
|
select UART_INTERRUPT_DRIVEN
|
|
select EXPERIMENTAL
|
|
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_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.
|
|
|
|
config EFI_CONSOLE
|
|
bool "Use EFI console for console output"
|
|
select CONSOLE_HAS_DRIVER
|
|
help
|
|
Enable this option to use EFI console output.
|
|
|
|
config WINSTREAM_CONSOLE
|
|
bool "Use Winstream console"
|
|
depends on WINSTREAM
|
|
help
|
|
Use winstream as a console.
|
|
|
|
See the WINSTREAM Kconfig help for more information.
|
|
|
|
endif # CONSOLE
|