mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-13 14:53:06 +00:00
836b7f4474
commit 1b15483deb
("misc: add Qualcomm GENI SE QUP device driver")
introduced support for platform-specific oversampling values, necessary
to configure the UART clocks on all platforms at runtime. However it
relies in probing a parent device. Despite the DM_FLAG_PRE_RELOC flag,
this is not done consistently during boot.
Instead, take another approach by relying on ofnode_ helpers to read the
serial engine base address and do the read directly. This fixes early
UART on boards with a non-default oversampling rate.
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
1158 lines
37 KiB
Text
1158 lines
37 KiB
Text
#
|
|
# Serial device configuration
|
|
#
|
|
|
|
menuconfig SERIAL
|
|
bool "Serial"
|
|
default y
|
|
help
|
|
Enable support for serial drivers. This allows use of a serial UART
|
|
for displaying messages while U-Boot is running. It also brings in
|
|
printf() and panic() functions. This should normally be enabled
|
|
unless there are space reasons not to. If you just need to disable
|
|
the console you can adjust the stdout environment variable or use
|
|
SILENT_CONSOLE.
|
|
|
|
if SERIAL
|
|
|
|
config BAUDRATE
|
|
int "Default baudrate"
|
|
default 115200
|
|
help
|
|
Select a default baudrate, where "default" has a driver-specific
|
|
meaning of either setting the baudrate for the early debug UART
|
|
in the SPL stage (most drivers) or for choosing a default baudrate
|
|
in the absence of an environment setting (serial_mxc.c).
|
|
|
|
config OF_SERIAL_BAUD
|
|
bool "Fetch serial baudrate from device tree"
|
|
depends on DM_SERIAL && SPL_ENV_SUPPORT
|
|
select DEFAULT_ENV_IS_RW
|
|
help
|
|
Select this to enable fetching and setting of the baudrate
|
|
configured in the DT. Replace the default baudrate with the DT
|
|
baudrate and also set it to the environment.
|
|
|
|
config DEFAULT_ENV_IS_RW
|
|
bool "Make default environment as writable"
|
|
help
|
|
Select this to enable to make default environment writable. This
|
|
allows modifying the default environment.
|
|
|
|
config REQUIRE_SERIAL_CONSOLE
|
|
bool "Require a serial port for console"
|
|
# Running without a serial console is not supported by the
|
|
# non-dm serial code
|
|
depends on DM_SERIAL
|
|
default y
|
|
help
|
|
Require a serial port for the console, and panic if none is found
|
|
during serial port initialization (default y). Set this to n on
|
|
boards which have no debug serial port whatsoever.
|
|
|
|
config SPECIFY_CONSOLE_INDEX
|
|
bool "Specify the port number used for console"
|
|
default y if !DM_SERIAL || (SPL && !SPL_DM_SERIAL) || \
|
|
(TPL && !TPL_DM_SERIAL)
|
|
help
|
|
In various cases, we need to specify which of the UART devices that
|
|
a board or SoC has available are to be used for the console device
|
|
in U-Boot.
|
|
|
|
config SERIAL_PRESENT
|
|
bool "Provide a serial driver"
|
|
depends on DM_SERIAL
|
|
default y
|
|
help
|
|
In very space-constrained devices even the full UART driver is too
|
|
large. In this case the debug UART can still be used in some cases.
|
|
This option enables the full UART in U-Boot, so if is it disabled,
|
|
the full UART driver will be omitted, thus saving space.
|
|
|
|
config SPL_SERIAL_PRESENT
|
|
bool "Provide a serial driver in SPL"
|
|
depends on DM_SERIAL && SPL
|
|
default y
|
|
help
|
|
In very space-constrained devices even the full UART driver is too
|
|
large. In this case the debug UART can still be used in some cases.
|
|
This option enables the full UART in SPL, so if is it disabled,
|
|
the full UART driver will be omitted, thus saving space.
|
|
|
|
config TPL_SERIAL_PRESENT
|
|
bool "Provide a serial driver in TPL"
|
|
depends on DM_SERIAL && TPL
|
|
default y
|
|
help
|
|
In very space-constrained devices even the full UART driver is too
|
|
large. In this case the debug UART can still be used in some cases.
|
|
This option enables the full UART in TPL, so if is it disabled,
|
|
the full UART driver will be omitted, thus saving space.
|
|
|
|
config VPL_SERIAL_PRESENT
|
|
bool "Provide a serial driver in VPL"
|
|
depends on DM_SERIAL && VPL
|
|
default y
|
|
help
|
|
In very space-constrained devices even the full UART driver is too
|
|
large. In this case the debug UART can still be used in some cases.
|
|
This option enables the full UART in TPL, so if is it disabled,
|
|
the full UART driver will be omitted, thus saving space.
|
|
|
|
config CONS_INDEX
|
|
int "UART used for console"
|
|
depends on SPECIFY_CONSOLE_INDEX
|
|
range 0 6
|
|
default 1
|
|
help
|
|
Set this to match the UART number of the serial console.
|
|
|
|
config DM_SERIAL
|
|
bool "Enable Driver Model for serial drivers"
|
|
depends on DM
|
|
select SYS_MALLOC_F
|
|
help
|
|
Enable driver model for serial. This replaces
|
|
drivers/serial/serial.c with the serial uclass, which
|
|
implements serial_putc() etc. The uclass interface is
|
|
defined in include/serial.h.
|
|
|
|
config SERIAL_RX_BUFFER
|
|
bool "Enable RX buffer for serial input"
|
|
depends on DM_SERIAL
|
|
help
|
|
Enable RX buffer support for the serial driver. This enables
|
|
pasting longer strings, even when the RX FIFO of the UART is
|
|
not big enough (e.g. 16 bytes on the normal NS16550).
|
|
|
|
config SERIAL_RX_BUFFER_SIZE
|
|
int "RX buffer size"
|
|
depends on SERIAL_RX_BUFFER
|
|
default 256
|
|
help
|
|
The size of the RX buffer (needs to be power of 2)
|
|
|
|
config SERIAL_PUTS
|
|
bool "Enable printing strings all at once"
|
|
depends on DM_SERIAL
|
|
help
|
|
Some serial drivers are much more efficient when printing multiple
|
|
characters at once rather than printing characters individually. This
|
|
can be because they can load a fifo, or because individual print
|
|
calls have a constant overhead. With this option set, the serial
|
|
subsystem will try to provide serial drivers with as many characters
|
|
at once as possible, instead of printing characters one by one. Most
|
|
serial drivers do not need this config to print efficiently. If
|
|
unsure, say N.
|
|
|
|
config SERIAL_SEARCH_ALL
|
|
bool "Search for serial devices after default one failed"
|
|
depends on DM_SERIAL
|
|
help
|
|
The serial subsystem only searches for a single serial device
|
|
that was instantiated, but does not check whether it was probed
|
|
correctly. With this option set, we make successful probing
|
|
mandatory and search for fallback serial devices if the default
|
|
device does not work.
|
|
|
|
If unsure, say N.
|
|
|
|
config SERIAL_PROBE_ALL
|
|
bool "Probe all available serial devices"
|
|
depends on DM_SERIAL
|
|
help
|
|
The serial subsystem only probes for a single serial device,
|
|
but does not probe for other remaining serial devices.
|
|
With this option set, we make probing and searching for
|
|
all available devices optional.
|
|
Normally, U-Boot talks to one serial port at a time, but SBSA
|
|
compliant UART devices like PL011 require initialization
|
|
by firmware and to let the kernel use serial port for sending
|
|
and receiving the characters.
|
|
|
|
If unsure, say N.
|
|
|
|
config SPL_DM_SERIAL
|
|
bool "Enable Driver Model for serial drivers in SPL"
|
|
depends on DM_SERIAL && SPL_DM
|
|
default y
|
|
help
|
|
Enable driver model for serial in SPL. This replaces
|
|
drivers/serial/serial.c with the serial uclass, which
|
|
implements serial_putc() etc. The uclass interface is
|
|
defined in include/serial.h.
|
|
|
|
config TPL_DM_SERIAL
|
|
bool "Enable Driver Model for serial drivers in TPL"
|
|
depends on DM_SERIAL && TPL_DM
|
|
default y if TPL && DM_SERIAL
|
|
help
|
|
Enable driver model for serial in TPL. This replaces
|
|
drivers/serial/serial.c with the serial uclass, which
|
|
implements serial_putc() etc. The uclass interface is
|
|
defined in include/serial.h.
|
|
|
|
config VPL_DM_SERIAL
|
|
bool "Enable Driver Model for serial drivers in VPL"
|
|
depends on DM_SERIAL
|
|
default y if VPL && DM_SERIAL
|
|
help
|
|
Enable driver model for serial in VPL. This replaces
|
|
drivers/serial/serial.c with the serial uclass, which
|
|
implements serial_putc() etc. The uclass interface is
|
|
defined in include/serial.h.
|
|
|
|
config DEBUG_UART
|
|
bool "Enable an early debug UART for debugging"
|
|
help
|
|
The debug UART is intended for use very early in U-Boot to debug
|
|
problems when an ICE or other debug mechanism is not available.
|
|
|
|
To use it you should:
|
|
- Make sure your UART supports this interface
|
|
- Enable CONFIG_DEBUG_UART
|
|
- Enable the CONFIG for your UART to tell it to provide this interface
|
|
(e.g. CONFIG_DEBUG_UART_NS16550)
|
|
- Define the required settings as needed (see below)
|
|
- Call debug_uart_init() before use
|
|
- Call debug_uart_putc() to output a character
|
|
|
|
Depending on your platform it may be possible to use this UART before
|
|
a stack is available.
|
|
|
|
If your UART does not support this interface you can probably add
|
|
support quite easily. Remember that you cannot use driver model and
|
|
it is preferred to use no stack.
|
|
|
|
You must not use this UART once driver model is working and the
|
|
serial drivers are up and running (done in serial_init()). Otherwise
|
|
the drivers may conflict and you will get strange output.
|
|
|
|
choice
|
|
prompt "Select which UART will provide the debug UART"
|
|
depends on DEBUG_UART
|
|
default DEBUG_SBI_CONSOLE if RISCV_SMODE
|
|
default DEBUG_UART_NS16550
|
|
|
|
config DEBUG_UART_ALTERA_JTAGUART
|
|
bool "Altera JTAG UART"
|
|
depends on ALTERA_JTAG_UART
|
|
help
|
|
Select this to enable a debug UART using the altera_jtag_uart driver.
|
|
You will need to provide parameters to make this work. The driver will
|
|
be available until the real driver model serial is running.
|
|
|
|
config DEBUG_UART_ALTERA_UART
|
|
bool "Altera UART"
|
|
depends on ALTERA_UART
|
|
help
|
|
Select this to enable a debug UART using the altera_uart driver.
|
|
You will need to provide parameters to make this work. The driver will
|
|
be available until the real driver model serial is running.
|
|
|
|
config DEBUG_UART_AR933X
|
|
bool "QCA/Atheros ar933x"
|
|
depends on AR933X_UART
|
|
help
|
|
Select this to enable a debug UART using the ar933x uart driver.
|
|
You will need to provide parameters to make this work. The
|
|
driver will be available until the real driver model serial is
|
|
running.
|
|
|
|
config DEBUG_ARC_SERIAL
|
|
bool "ARC UART"
|
|
depends on ARC_SERIAL
|
|
help
|
|
Select this to enable a debug UART using the ARC UART driver.
|
|
You will need to provide parameters to make this work. The
|
|
driver will be available until the real driver model serial is
|
|
running.
|
|
|
|
config DEBUG_UART_ATMEL
|
|
bool "Atmel USART"
|
|
depends on ATMEL_USART
|
|
help
|
|
Select this to enable a debug UART using the atmel usart driver. You
|
|
will need to provide parameters to make this work. The driver will
|
|
be available until the real driver-model serial is running.
|
|
|
|
config DEBUG_UART_BCM6345
|
|
bool "BCM6345 UART"
|
|
depends on BCM6345_SERIAL
|
|
help
|
|
Select this to enable a debug UART on BCM6345 SoCs. You
|
|
will need to provide parameters to make this work. The driver will
|
|
be available until the real driver model serial is running.
|
|
|
|
config DEBUG_UART_NS16550
|
|
bool "ns16550"
|
|
depends on SYS_NS16550
|
|
help
|
|
Select this to enable a debug UART using the ns16550 driver. You
|
|
will need to provide parameters to make this work. The driver will
|
|
be available until the real driver model serial is running.
|
|
|
|
config DEBUG_EFI_CONSOLE
|
|
bool "EFI"
|
|
depends on EFI_APP
|
|
help
|
|
Select this to enable a debug console which calls back to EFI to
|
|
output to the console. This can be useful for early debugging of
|
|
U-Boot when running on top of EFI (Extensive Firmware Interface).
|
|
This is a type of BIOS used by PCs.
|
|
|
|
config DEBUG_SBI_CONSOLE
|
|
bool "SBI"
|
|
depends on RISCV_SMODE
|
|
help
|
|
Select this to enable a debug console which calls back to SBI to
|
|
output to the console. This can be useful for early debugging of
|
|
U-Boot when running on top of SBI (Supervisor Binary Interface).
|
|
This implementation of the debug UART is not available while in
|
|
M-mode (e.g. during SPL).
|
|
|
|
config DEBUG_UART_S5P
|
|
bool "Samsung S5P"
|
|
depends on ARCH_APPLE || ARCH_EXYNOS || ARCH_S5PC1XX
|
|
help
|
|
Select this to enable a debug UART using the serial_s5p driver. You
|
|
will need to provide parameters to make this work. The driver will
|
|
be available until the real driver-model serial is running.
|
|
|
|
config DEBUG_UART_MSM_GENI
|
|
bool "Qualcomm snapdragon"
|
|
depends on ARCH_SNAPDRAGON
|
|
help
|
|
Select this to enable a debug UART using the serial_msm driver. You
|
|
will need to provide parameters to make this work. The driver will
|
|
be available until the real driver-model serial is running.
|
|
|
|
config DEBUG_UART_MESON
|
|
bool "Amlogic Meson"
|
|
depends on MESON_SERIAL
|
|
help
|
|
Select this to enable a debug UART using the serial_meson driver. You
|
|
will need to provide parameters to make this work. The driver will
|
|
be available until the real driver-model serial is running.
|
|
|
|
config DEBUG_UART_UARTLITE
|
|
bool "Xilinx Uartlite"
|
|
depends on XILINX_UARTLITE
|
|
help
|
|
Select this to enable a debug UART using the serial_uartlite driver.
|
|
You will need to provide parameters to make this work. The driver will
|
|
be available until the real driver-model serial is running.
|
|
|
|
config DEBUG_UART_ARM_DCC
|
|
bool "ARM DCC"
|
|
depends on ARM_DCC
|
|
help
|
|
Select this to enable a debug UART using the ARM JTAG DCC port.
|
|
The DCC port can be used for very early debugging and doesn't require
|
|
any additional setting like address/baudrate/clock. On systems without
|
|
any serial interface this is the easiest way how to get console.
|
|
Every ARM core has own DCC port which is the part of debug interface.
|
|
This port is available at least on ARMv6, ARMv7, ARMv8 and XScale
|
|
architectures.
|
|
|
|
config DEBUG_MVEBU_A3700_UART
|
|
bool "Marvell Armada 3700"
|
|
depends on MVEBU_A3700_UART
|
|
help
|
|
Select this to enable a debug UART using the serial_mvebu driver. You
|
|
will need to provide parameters to make this work. The driver will
|
|
be available until the real driver-model serial is running.
|
|
|
|
config DEBUG_UART_ZYNQ
|
|
bool "Xilinx Zynq"
|
|
depends on ZYNQ_SERIAL
|
|
help
|
|
Select this to enable a debug UART using the serial_zynq driver. You
|
|
will need to provide parameters to make this work. The driver will
|
|
be available until the real driver-model serial is running.
|
|
|
|
config DEBUG_UART_APBUART
|
|
depends on LEON3
|
|
bool "Gaisler APBUART"
|
|
help
|
|
Select this to enable a debug UART using the serial_leon3 driver. You
|
|
will need to provide parameters to make this work. The driver will
|
|
be available until the real driver model serial is running.
|
|
|
|
config DEBUG_UART_PL010
|
|
bool "pl010"
|
|
depends on PL01X_SERIAL
|
|
help
|
|
Select this to enable a debug UART using the pl01x driver with the
|
|
PL010 UART type. You will need to provide parameters to make this
|
|
work. The driver will be available until the real driver model
|
|
serial is running.
|
|
|
|
config DEBUG_UART_PL011
|
|
bool "pl011"
|
|
depends on PL01X_SERIAL || PL011_SERIAL
|
|
help
|
|
Select this to enable a debug UART using the pl01x driver with the
|
|
PL011 UART type. You will need to provide parameters to make this
|
|
work. The driver will be available until the real driver model
|
|
serial is running.
|
|
|
|
config DEBUG_UART_PIC32
|
|
bool "Microchip PIC32"
|
|
depends on PIC32_SERIAL
|
|
help
|
|
Select this to enable a debug UART using the serial_pic32 driver. You
|
|
will need to provide parameters to make this work. The driver will
|
|
be available until the real driver model serial is running.
|
|
|
|
config DEBUG_UART_MXC
|
|
bool "IMX Serial port"
|
|
depends on MXC_UART
|
|
help
|
|
Select this to enable a debug UART using the serial_mxc driver. You
|
|
will need to provide parameters to make this work. The driver will
|
|
be available until the real driver model serial is running.
|
|
|
|
config DEBUG_UART_SANDBOX
|
|
bool "sandbox"
|
|
depends on SANDBOX_SERIAL
|
|
help
|
|
Select this to enable the debug UART using the sandbox driver. This
|
|
provides basic serial output from the console without needing to
|
|
start up driver model. The driver will be available until the real
|
|
driver model serial is running.
|
|
|
|
config DEBUG_UART_SEMIHOSTING
|
|
bool "semihosting"
|
|
depends on SEMIHOSTING_SERIAL
|
|
help
|
|
Select this to enable the debug UART using the semihosting driver.
|
|
This provides basic serial output from the console without needing to
|
|
start up driver model. The driver will be available until the real
|
|
driver model serial is running.
|
|
|
|
config DEBUG_UART_SCIF
|
|
bool "Renesas SCIF UART"
|
|
depends on SH || ARCH_RMOBILE
|
|
help
|
|
Select this to enable a debug UART using the serial_sh driver. You
|
|
will need to provide parameters to make this work. The driver will
|
|
be available until the real driver-model serial is running.
|
|
|
|
config DEBUG_UART_SIFIVE
|
|
bool "SiFive UART"
|
|
depends on SIFIVE_SERIAL
|
|
help
|
|
Select this to enable a debug UART using the serial_sifive driver. You
|
|
will need to provide parameters to make this work. The driver will
|
|
be available until the real driver-model serial is running.
|
|
|
|
config DEBUG_UART_STM32
|
|
bool "STMicroelectronics STM32"
|
|
depends on STM32_SERIAL
|
|
help
|
|
Select this to enable a debug UART using the serial_stm32 driver
|
|
You will need to provide parameters to make this work.
|
|
The driver will be available until the real driver model
|
|
serial is running.
|
|
|
|
config DEBUG_UART_UNIPHIER
|
|
bool "UniPhier on-chip UART"
|
|
depends on ARCH_UNIPHIER
|
|
help
|
|
Select this to enable a debug UART using the UniPhier on-chip UART.
|
|
You will need to provide DEBUG_UART_BASE to make this work. The
|
|
driver will be available until the real driver-model serial is
|
|
running.
|
|
|
|
config DEBUG_UART_OMAP
|
|
bool "OMAP uart"
|
|
depends on OMAP_SERIAL
|
|
help
|
|
Select this to enable a debug UART using the omap ns16550 driver.
|
|
You will need to provide parameters to make this work. The driver
|
|
will be available until the real driver model serial is running.
|
|
|
|
config DEBUG_UART_MTK
|
|
bool "MediaTek High-speed UART"
|
|
depends on MTK_SERIAL
|
|
help
|
|
Select this to enable a debug UART using the MediaTek High-speed
|
|
UART driver.
|
|
You will need to provide parameters to make this work. The
|
|
driver will be available until the real driver model serial is
|
|
running.
|
|
|
|
config DEBUG_UART_MT7620
|
|
bool "UART driver for MediaTek MT7620 and earlier SoCs"
|
|
depends on MT7620_SERIAL
|
|
help
|
|
Select this to enable a debug UART using the UART driver for
|
|
MediaTek MT7620 and earlier SoCs.
|
|
You will need to provide parameters to make this work. The
|
|
driver will be available until the real driver model serial is
|
|
running.
|
|
|
|
endchoice
|
|
|
|
config DEBUG_UART_BASE
|
|
hex "Base address of UART"
|
|
depends on DEBUG_UART
|
|
default 0x0 if DEBUG_SBI_CONSOLE
|
|
default 0x0 if DEBUG_UART_SANDBOX
|
|
default 0xff000000 if DEBUG_UART_ZYNQ && ARCH_ZYNQMP
|
|
default 0xe0000000 if DEBUG_UART_ZYNQ && ARCH_ZYNQ
|
|
help
|
|
This is the base address of your UART for memory-mapped UARTs.
|
|
|
|
A default should be provided by your board, but if not you will need
|
|
to use the correct value here.
|
|
|
|
config SPL_DEBUG_UART_BASE
|
|
hex "Base address of UART for SPL"
|
|
depends on SPL && DEBUG_UART
|
|
default DEBUG_UART_BASE
|
|
help
|
|
This is the base address of your UART for memory-mapped UARTs for SPL.
|
|
|
|
config TPL_DEBUG_UART_BASE
|
|
hex "Base address of UART for TPL"
|
|
depends on TPL && DEBUG_UART
|
|
default DEBUG_UART_BASE
|
|
help
|
|
This is the base address of your UART for memory-mapped UARTs for TPL.
|
|
|
|
config DEBUG_UART_CLOCK
|
|
int "UART input clock"
|
|
depends on DEBUG_UART
|
|
default 0 if DEBUG_SBI_CONSOLE
|
|
default 0 if DEBUG_UART_SANDBOX
|
|
default 0 if DEBUG_MVEBU_A3700_UART
|
|
default 100000000 if DEBUG_UART_ZYNQ && ARCH_ZYNQMP
|
|
default 50000000 if DEBUG_UART_ZYNQ && ARCH_ZYNQ
|
|
help
|
|
The UART input clock determines the speed of the internal UART
|
|
circuitry. The baud rate is derived from this by dividing the input
|
|
clock down.
|
|
|
|
A default should be provided by your board, but if not you will need
|
|
to use the correct value here.
|
|
|
|
config DEBUG_UART_SHIFT
|
|
int "UART register shift"
|
|
depends on DEBUG_UART
|
|
default 0 if DEBUG_UART
|
|
help
|
|
Some UARTs (notably ns16550) support different register layouts
|
|
where the registers are spaced either as bytes, words or some other
|
|
value. Use this value to specify the shift to use, where 0=byte
|
|
registers, 2=32-bit word registers, etc.
|
|
|
|
config DEBUG_UART_BOARD_INIT
|
|
bool "Enable board-specific debug UART init"
|
|
depends on DEBUG_UART
|
|
help
|
|
Some boards need to set things up before the debug UART can be used.
|
|
On these boards a call to debug_uart_init() is insufficient. When
|
|
this option is enabled, the function board_debug_uart_init() will
|
|
be called when debug_uart_init() is called. You can put any code
|
|
here that is needed to set up the UART ready for use, such as set
|
|
pin multiplexing or enable clocks.
|
|
|
|
config DEBUG_UART_ANNOUNCE
|
|
bool "Show a message when the debug UART starts up"
|
|
depends on DEBUG_UART
|
|
help
|
|
Enable this option to show a message when the debug UART is ready
|
|
for use. You will see a message like "<debug_uart> " as soon as
|
|
U-Boot has the UART ready for use (i.e. your code calls
|
|
debug_uart_init()). This can be useful just as a check that
|
|
everything is working.
|
|
|
|
config DEBUG_UART_SKIP_INIT
|
|
bool "Skip UART initialization"
|
|
depends on DEBUG_UART
|
|
help
|
|
Select this if the UART you want to use for debug output is already
|
|
initialized by the time U-Boot starts its execution.
|
|
|
|
config DEBUG_UART_NS16550_CHECK_ENABLED
|
|
bool "Check if UART is enabled on output"
|
|
depends on DEBUG_UART
|
|
depends on DEBUG_UART_NS16550
|
|
help
|
|
Select this if puts()/putc() might be called before the debug UART
|
|
has been initialized. If this is disabled, putc() might sit in a
|
|
tight loop if it is called before debug_uart_init() has been called.
|
|
|
|
Note that this does not work for every ns16550-compatible UART and
|
|
so has to be enabled carefully or you might notice lost characters.
|
|
|
|
config ALTERA_JTAG_UART
|
|
bool "Altera JTAG UART support"
|
|
depends on DM_SERIAL
|
|
help
|
|
Select this to enable an JTAG UART for Altera devices.The JTAG UART
|
|
core implements a method to communicate serial character streams
|
|
between a host PC and a Qsys system on an Altera FPGA. Please find
|
|
details on the "Embedded Peripherals IP User Guide" of Altera.
|
|
|
|
config ALTERA_JTAG_UART_BYPASS
|
|
bool "Bypass output when no connection"
|
|
depends on ALTERA_JTAG_UART
|
|
help
|
|
Bypass console output and keep going even if there is no JTAG
|
|
terminal connection with the host. The console output will resume
|
|
once the JTAG terminal is connected. Without the bypass, the console
|
|
output will wait forever until a JTAG terminal is connected. If you
|
|
not are sure, say Y.
|
|
|
|
config ALTERA_UART
|
|
bool "Altera UART support"
|
|
depends on DM_SERIAL
|
|
help
|
|
Select this to enable an UART for Altera devices. Please find
|
|
details on the "Embedded Peripherals IP User Guide" of Altera.
|
|
|
|
config AR933X_UART
|
|
bool "QCA/Atheros ar933x UART support"
|
|
depends on DM_SERIAL && SOC_AR933X
|
|
help
|
|
Select this to enable UART support for QCA/Atheros ar933x
|
|
devices. This driver uses driver model and requires a device
|
|
tree binding to operate, please refer to the document at
|
|
doc/device-tree-bindings/serial/qca,ar9330-uart.txt.
|
|
|
|
config ARC_SERIAL
|
|
bool "ARC UART support"
|
|
depends on DM_SERIAL
|
|
help
|
|
Select this to enable support for ARC UART now typically
|
|
only used in Synopsys DesignWare ARC simulators like nSIM.
|
|
|
|
config ARM_DCC
|
|
bool "ARM Debug Communication Channel (DCC) as UART support"
|
|
depends on ARM
|
|
help
|
|
Select this to enable using the ARM DCC as a form of UART.
|
|
|
|
config ATMEL_USART
|
|
bool "Atmel USART support"
|
|
help
|
|
Select this to enable USART support for Atmel SoCs. It can be
|
|
configured in the device tree, and input clock frequency can
|
|
be got from the clk node.
|
|
|
|
config SPL_UART_CLOCK
|
|
int "SPL fixed UART input clock"
|
|
depends on ATMEL_USART && SPL && !SPL_CLK
|
|
default 132096000 if ARCH_AT91
|
|
help
|
|
Provide a fixed clock value as input to the UART controller. This
|
|
might be needed on platforms which can't enable CONFIG_SPL_CLK
|
|
because of SPL image size restrictions.
|
|
|
|
config BCM283X_MU_SERIAL
|
|
bool "Support for BCM283x Mini-UART"
|
|
depends on DM_SERIAL && ARCH_BCM283X
|
|
default y
|
|
help
|
|
Select this to enable Mini-UART support on BCM283X family of SoCs.
|
|
|
|
config BCM283X_PL011_SERIAL
|
|
bool "Support for BCM283x PL011 UART"
|
|
depends on PL01X_SERIAL && ARCH_BCM283X
|
|
default y
|
|
help
|
|
Select this to enable an overriding PL011 driver for BCM283X SoCs
|
|
that supports automatic disable, so that it only gets used when
|
|
the UART is actually muxed.
|
|
|
|
config BCM6345_SERIAL
|
|
bool "Support for BCM6345 UART"
|
|
depends on DM_SERIAL
|
|
help
|
|
Select this to enable UART on BCM6345 SoCs.
|
|
|
|
config COREBOOT_SERIAL
|
|
bool "Coreboot UART support"
|
|
depends on DM_SERIAL
|
|
default y if SYS_COREBOOT
|
|
select SYS_NS16550
|
|
help
|
|
Select this to enable a ns16550-style UART where the platform data
|
|
comes from the coreboot 'sysinfo' tables. This allows U-Boot to have
|
|
a serial console on any platform without needing to change the
|
|
device tree, etc.
|
|
|
|
config COREBOOT_SERIAL_FROM_DBG2
|
|
bool "Obtain UART from ACPI tables"
|
|
depends on COREBOOT_SERIAL
|
|
default y
|
|
help
|
|
Select this to try to find a DBG2 record in the ACPI tables, in the
|
|
event that coreboot does not provide information about the UART in the
|
|
normal sysinfo tables. This provides a useful fallback when serial
|
|
is not enabled in coreboot.
|
|
|
|
config CORTINA_UART
|
|
bool "Cortina UART support"
|
|
depends on DM_SERIAL
|
|
help
|
|
Select this to enable UART support for Cortina-Access UART devices
|
|
found on CAxxxx SoCs.
|
|
|
|
config FSL_LINFLEXUART
|
|
bool "Freescale Linflex UART support"
|
|
depends on DM_SERIAL
|
|
help
|
|
Select this to enable the Linflex serial module found on some
|
|
NXP SoCs like S32V234.
|
|
|
|
config FSL_LPUART
|
|
bool "Freescale LPUART support"
|
|
help
|
|
Select this to enable a Low Power UART for Freescale VF610 and
|
|
QorIQ Layerscape devices.
|
|
|
|
config LPUART
|
|
bool "Use the LPUART as console"
|
|
depends on FSL_LPUART
|
|
|
|
config MVEBU_A3700_UART
|
|
bool "UART support for Armada 3700"
|
|
help
|
|
Choose this option to add support for UART driver on the Marvell
|
|
Armada 3700 SoC. The base address is configured via DT.
|
|
|
|
config MCFUART
|
|
bool "Freescale ColdFire UART support"
|
|
help
|
|
Choose this option to add support for UART driver on the ColdFire
|
|
SoC's family. The serial communication channel provides a full-duplex
|
|
asynchronous/synchronous receiver and transmitter deriving an
|
|
operating frequency from the internal bus clock or an external clock.
|
|
|
|
config MXC_UART
|
|
bool "IMX serial port support"
|
|
depends on ARCH_MX31 || MX5 || MX6 || MX7 || IMX8M
|
|
help
|
|
If you have a machine based on a Motorola IMX CPU you
|
|
can enable its onboard serial port by enabling this option.
|
|
|
|
config NULLDEV_SERIAL
|
|
bool "Null serial device"
|
|
help
|
|
Select this to enable null serial device support. A null serial
|
|
device merely acts as a placeholder for a serial device and does
|
|
nothing for all it's operation.
|
|
|
|
config PIC32_SERIAL
|
|
bool "Support for Microchip PIC32 on-chip UART"
|
|
depends on DM_SERIAL && MACH_PIC32
|
|
default y
|
|
help
|
|
Support for the UART found on Microchip PIC32 SoC's.
|
|
|
|
config SYS_NS16550_SERIAL
|
|
bool "NS16550 UART or compatible legacy driver"
|
|
depends on !DM_SERIAL
|
|
select SYS_NS16550
|
|
|
|
config SPL_SYS_NS16550_SERIAL
|
|
bool "NS16550 UART or compatible legacy driver in SPL"
|
|
depends on SPL && !SPL_DM_SERIAL
|
|
default y if SYS_NS16550_SERIAL || ARCH_SUNXI || ARCH_OMAP2PLUS
|
|
select SYS_NS16550
|
|
|
|
config SYS_NS16550
|
|
bool "NS16550 UART or compatible"
|
|
help
|
|
Support NS16550 UART or compatible. This can be enabled in the
|
|
device tree with the correct input clock frequency. If the input
|
|
clock frequency is not defined in the device tree, the macro
|
|
CFG_SYS_NS16550_CLK defined in a legacy board header file will
|
|
be used. It can be a constant or a function to get clock, eg,
|
|
get_serial_clock().
|
|
|
|
config NS16550_DYNAMIC
|
|
bool "Allow NS16550 to be configured at runtime"
|
|
depends on SYS_NS16550
|
|
default y if SYS_COREBOOT || SYS_SLIMBOOTLOADER
|
|
help
|
|
Enable this option to allow device-tree control of the driver.
|
|
|
|
Normally this driver is controlled by the following options:
|
|
|
|
It is not a good practice for a driver to be statically configured,
|
|
since it prevents the same driver being used for different types of
|
|
UARTs in a system. This option avoids this problem at the cost of a
|
|
slightly increased code size.
|
|
|
|
config SYS_NS16550_MEM32
|
|
bool "If memory-mapped, 32bit access is needed for ns16550 register access"
|
|
depends on SYS_NS16550
|
|
help
|
|
If enabled, if memory-mapped, indicates that 32-bit access should be
|
|
used (instead of 8-bit) for register access.
|
|
|
|
config SYS_NS16550_PORT_MAPPED
|
|
bool "Port I/O is used for ns16550 register access"
|
|
depends on SYS_NS16550
|
|
help
|
|
If enabled, port I/O is used for ns16550 register access. If not
|
|
enabled, then the UART is memory-mapped.
|
|
|
|
config SYS_NS16550_REG_SIZE
|
|
int "ns16550 register width and endianness"
|
|
depends on SYS_NS16550_SERIAL || SPL_SYS_NS16550_SERIAL
|
|
range -4 4
|
|
default -4 if ARCH_OMAP2PLUS || ARCH_SUNXI
|
|
default 1
|
|
help
|
|
Indicates register width and also endianness. If positive, big-endian
|
|
access is used. If negative, little-endian is used.
|
|
|
|
config SPL_NS16550_MIN_FUNCTIONS
|
|
bool "Only provide NS16550_init and NS16550_putc in SPL"
|
|
depends on SPL_SYS_NS16550_SERIAL && PPC
|
|
help
|
|
Enable this if you desire to only have use of the NS16550_init and
|
|
NS16550_putc functions for the serial driver located at
|
|
drivers/serial/ns16550.c. This option is useful for saving space for
|
|
already greatly restricted images, including but not limited to
|
|
NAND_SPL configurations.
|
|
|
|
config INTEL_MID_SERIAL
|
|
bool "Intel MID platform UART support"
|
|
depends on DM_SERIAL && OF_CONTROL
|
|
depends on INTEL_MID
|
|
select SYS_NS16550
|
|
help
|
|
Select this to enable a UART for Intel MID platforms.
|
|
This uses the ns16550 driver as a library.
|
|
|
|
config PL011_SERIAL
|
|
bool "ARM PL011 driver"
|
|
depends on !DM_SERIAL
|
|
help
|
|
Select this to enable a UART for platforms using PL011.
|
|
|
|
config PL01X_SERIAL
|
|
bool "ARM PL010 and PL011 driver"
|
|
depends on DM_SERIAL
|
|
help
|
|
Select this to enable a UART for platforms using PL010 or PL011.
|
|
|
|
config ROCKCHIP_SERIAL
|
|
bool "Rockchip on-chip UART support"
|
|
depends on DM_SERIAL
|
|
select SYS_NS16550
|
|
help
|
|
Select this to enable a debug UART for Rockchip devices when using
|
|
OF_PLATDATA (i.e. a compiled-in device tree replacemenmt).
|
|
This uses the ns16550 driver, converting the platdata from of-platdata
|
|
to the ns16550 format.
|
|
|
|
config S5P_SERIAL
|
|
bool "Support for Samsung S5P UART"
|
|
depends on ARCH_APPLE || ARCH_EXYNOS || ARCH_S5PC1XX
|
|
default y
|
|
help
|
|
Select this to enable Samsung S5P UART support.
|
|
|
|
config S5P4418_PL011_SERIAL
|
|
bool "Extended PL011 driver for S5P4418"
|
|
depends on DM_SERIAL && PL01X_SERIAL && ARCH_NEXELL
|
|
default y
|
|
help
|
|
Select this to enable support of the PL011 UARTs in the S5P4418 SOC.
|
|
With this driver the UART-clocks are set to the appropriate rate
|
|
(if not 'skip-init').
|
|
|
|
config SANDBOX_SERIAL
|
|
bool "Sandbox UART support"
|
|
depends on SANDBOX
|
|
imply SERIAL_PUTS
|
|
help
|
|
Select this to enable a seral UART for sandbox. This is required to
|
|
operate correctly, otherwise you will see no serial output from
|
|
sandbox. The emulated UART will display to the console and console
|
|
input will be fed into the UART. This allows you to interact with
|
|
U-Boot.
|
|
|
|
The operation of the console is controlled by the -t command-line
|
|
flag. In raw mode, U-Boot sees all characters from the terminal
|
|
before they are processed, including Ctrl-C. In cooked mode, Ctrl-C
|
|
is processed by the terminal, and terminates U-Boot. Valid options
|
|
are:
|
|
|
|
-t raw-with-sigs Raw mode, Ctrl-C will terminate U-Boot
|
|
-t raw Raw mode, Ctrl-C is processed by U-Boot
|
|
-t cooked Cooked mode, Ctrl-C terminates
|
|
|
|
config SCIF_CONSOLE
|
|
bool "Renesas SCIF UART support"
|
|
depends on SH || ARCH_RMOBILE
|
|
help
|
|
Select this to enable Renesas SCIF UART. To operate serial ports
|
|
on systems with RCar or SH SoCs, say Y to this option. If unsure,
|
|
say N.
|
|
|
|
choice
|
|
prompt "SCIF console port"
|
|
depends on SCIF_CONSOLE && (!DM_SERIAL || (SPL && !SPL_DM_SERIAL))
|
|
|
|
config CONS_SCIF0
|
|
bool "SCIF0"
|
|
|
|
config CONS_SCIF1
|
|
bool "SCIF1"
|
|
|
|
config CONS_SCIF2
|
|
bool "SCIF2"
|
|
|
|
config CONS_SCIF4
|
|
bool "SCIF4"
|
|
|
|
config CONS_SCIFA0
|
|
bool "SCIFA0"
|
|
|
|
endchoice
|
|
|
|
config SH_SCIF_CLK_FREQ
|
|
int "SCIF console clock frequency"
|
|
depends on SCIF_CONSOLE && (!DM_SERIAL || (SPL && !SPL_DM_SERIAL))
|
|
default 65000000
|
|
|
|
config SEMIHOSTING_SERIAL
|
|
bool "Semihosting UART support"
|
|
depends on SEMIHOSTING && !SERIAL_RX_BUFFER
|
|
imply SERIAL_PUTS
|
|
help
|
|
Select this to enable a serial UART using semihosting. Special halt
|
|
instructions will be issued which an external debugger (such as a
|
|
JTAG emulator) may interpret. The debugger will display U-Boot's
|
|
console output on the host system.
|
|
|
|
Enable this option only if you are using a debugger which supports
|
|
semihosting. If you are not using a debugger, this driver will halt
|
|
the boot.
|
|
|
|
config UNIPHIER_SERIAL
|
|
bool "Support for UniPhier on-chip UART"
|
|
depends on ARCH_UNIPHIER
|
|
default y
|
|
help
|
|
If you have a UniPhier based board and want to use the on-chip
|
|
serial ports, say Y to this option. If unsure, say N.
|
|
|
|
config XILINX_UARTLITE
|
|
bool "Xilinx Uarlite support"
|
|
depends on DM_SERIAL
|
|
help
|
|
If you have a Xilinx based board and want to use the uartlite
|
|
serial ports, say Y to this option. If unsure, say N.
|
|
|
|
config MESON_SERIAL
|
|
bool "Support for Amlogic Meson UART"
|
|
depends on DM_SERIAL && ARCH_MESON
|
|
help
|
|
If you have an Amlogic Meson based board and want to use the on-chip
|
|
serial ports, say Y to this option. If unsure, say N.
|
|
|
|
config MSM_SERIAL
|
|
bool "Qualcomm on-chip UART"
|
|
depends on DM_SERIAL
|
|
help
|
|
Support Data Mover UART used on Qualcomm Snapdragon SoCs.
|
|
It should support all Qualcomm devices with UARTDM version 1.4,
|
|
for example APQ8016 and MSM8916.
|
|
Single baudrate is supported in current implementation (115200).
|
|
|
|
config MSM_GENI_SERIAL
|
|
bool "Qualcomm on-chip GENI UART"
|
|
help
|
|
Support UART based on Generic Interface (GENI) Serial Engine (SE),
|
|
used on Qualcomm Snapdragon SoCs. Should support all qualcomm SOCs
|
|
with Qualcomm Universal Peripheral (QUP) Wrapper cores,
|
|
i.e. newer ones, starting from SDM845.
|
|
Driver works in FIFO mode.
|
|
Multiple baudrates supported.
|
|
|
|
config MXS_AUART_SERIAL
|
|
bool "MXS AUART"
|
|
depends on DM_SERIAL
|
|
help
|
|
Support for Freescale i.MX23 / i.MX28 AUART or Application UART IP.
|
|
This IP is present in the aforementioned SoCs, however this is not
|
|
the IP used to drive the Debug UART port, for that see PL01X_SERIAL .
|
|
|
|
config OCTEON_SERIAL_BOOTCMD
|
|
bool "MIPS Octeon PCI remote bootcmd input"
|
|
depends on ARCH_OCTEON
|
|
depends on DM_SERIAL
|
|
select SYS_IS_IN_ENV
|
|
select CONSOLE_MUX
|
|
help
|
|
This driver supports remote input over the PCIe bus from a host
|
|
to U-Boot for entering commands. It is utilized by the host
|
|
commands 'oct-remote-load' and 'oct-remote-bootcmd'.
|
|
|
|
config OCTEON_SERIAL_PCIE_CONSOLE
|
|
bool "MIPS Octeon PCIe remote console"
|
|
depends on ARCH_OCTEON
|
|
depends on (DM_SERIAL && DM_STDIO)
|
|
select SYS_STDIO_DEREGISTER
|
|
select SYS_CONSOLE_IS_IN_ENV
|
|
select CONSOLE_MUX
|
|
help
|
|
This driver supports remote console over the PCIe bus when the
|
|
Octeon is running in PCIe target mode. The host program
|
|
'oct-remote-console' can be used to connect to this console.
|
|
The console number will likely be 0 or 1.
|
|
|
|
config OMAP_SERIAL
|
|
bool "Support for OMAP specific UART"
|
|
depends on DM_SERIAL
|
|
default y if (ARCH_OMAP2PLUS || ARCH_K3)
|
|
select SYS_NS16550
|
|
help
|
|
If you have an TI based SoC and want to use the on-chip serial
|
|
port, say Y to this option. If unsure say N.
|
|
|
|
config OWL_SERIAL
|
|
bool "Actions Semi OWL UART"
|
|
depends on DM_SERIAL && ARCH_OWL
|
|
help
|
|
If you have a Actions Semi OWL based board and want to use the on-chip
|
|
serial port, say Y to this option. If unsure, say N.
|
|
Single baudrate is supported in current implementation (115200).
|
|
|
|
config HTIF_CONSOLE
|
|
bool "RISC-V HTIF console support"
|
|
depends on DM_SERIAL && 64BIT
|
|
help
|
|
Select this to enable host transfer interface (HTIF) based serial
|
|
console. The HTIF device is quite common in RISC-V emulators and
|
|
RISC-V ISS so this driver allows using U-Boot on such platforms.
|
|
|
|
config SIFIVE_SERIAL
|
|
bool "SiFive UART support"
|
|
depends on DM_SERIAL
|
|
help
|
|
This driver supports the SiFive UART. If unsure say N.
|
|
|
|
config STI_ASC_SERIAL
|
|
bool "STMicroelectronics on-chip UART"
|
|
depends on DM_SERIAL && ARCH_STI
|
|
help
|
|
Select this to enable Asynchronous Serial Controller available
|
|
on STiH410 SoC. This is a basic implementation, it supports
|
|
following baudrate 9600, 19200, 38400, 57600 and 115200.
|
|
|
|
config STM32_SERIAL
|
|
bool "STMicroelectronics STM32 SoCs on-chip UART"
|
|
depends on DM_SERIAL && (STM32F4 || STM32F7 || STM32H7 || ARCH_STM32MP)
|
|
help
|
|
If you have a machine based on a STM32 F4, F7, H7 or MP1 SOC
|
|
you can enable its onboard serial ports, say Y to this option.
|
|
If unsure, say N.
|
|
|
|
config ZYNQ_SERIAL
|
|
bool "Cadence (Xilinx Zynq) UART support"
|
|
depends on DM_SERIAL
|
|
help
|
|
This driver supports the Cadence UART. It is found e.g. in Xilinx
|
|
Zynq/ZynqMP.
|
|
|
|
config MTK_SERIAL
|
|
bool "MediaTek High-speed UART support"
|
|
depends on DM_SERIAL
|
|
help
|
|
Select this to enable UART support for MediaTek High-speed UART
|
|
devices. This driver uses driver model and requires a device
|
|
tree binding to operate.
|
|
The High-speed UART is compatible with the ns16550a UART and have
|
|
its own high-speed registers.
|
|
|
|
config MT7620_SERIAL
|
|
bool "UART driver for MediaTek MT7620 and earlier SoCs"
|
|
depends on DM_SERIAL
|
|
help
|
|
Select this to enable UART support for MediaTek MT7620 and earlier
|
|
SoCs. This driver uses driver model and requires a device tree
|
|
binding to operate.
|
|
The UART driver for MediaTek MT7620 and earlier SoCs is *NOT*
|
|
compatible with the ns16550a UART.
|
|
|
|
config MPC8XX_CONS
|
|
bool "Console driver for MPC8XX"
|
|
depends on MPC8xx
|
|
default y
|
|
|
|
config NPCM_SERIAL
|
|
bool "Nuvoton NPCM UART driver"
|
|
depends on DM_SERIAL
|
|
help
|
|
Select this to enable UART support for Nuvoton BMCs
|
|
(NPCM7xx and NPCM8xx).
|
|
The driver enables the onboard serial port with 8-N-1
|
|
configuration.
|
|
|
|
config XEN_SERIAL
|
|
bool "XEN serial support"
|
|
depends on XEN
|
|
help
|
|
If built without DM support, then requires Xen
|
|
to be built with CONFIG_VERBOSE_DEBUG.
|
|
|
|
choice
|
|
prompt "Console port"
|
|
default 8xx_CONS_SMC1
|
|
depends on MPC8XX_CONS
|
|
help
|
|
Depending on board, select one serial port
|
|
(CONFIG_8xx_CONS_SMC1 or CONFIG_8xx_CONS_SMC2)
|
|
|
|
config 8xx_CONS_SMC1
|
|
bool "SMC1"
|
|
|
|
config 8xx_CONS_SMC2
|
|
bool "SMC2"
|
|
|
|
endchoice
|
|
|
|
config SYS_SMC_RXBUFLEN
|
|
int "Console Rx buffer length"
|
|
depends on MPC8XX_CONS
|
|
default 1
|
|
help
|
|
With CONFIG_SYS_SMC_RXBUFLEN it is possible to define
|
|
the maximum receive buffer length for the SMC.
|
|
This option is actual only for 8xx possible.
|
|
If using CONFIG_SYS_SMC_RXBUFLEN also CONFIG_SYS_MAXIDLE
|
|
must be defined, to setup the maximum idle timeout for
|
|
the SMC.
|
|
|
|
config SYS_MAXIDLE
|
|
int "maximum idle timeout"
|
|
depends on MPC8XX_CONS
|
|
default 0
|
|
|
|
config SYS_BRGCLK_PRESCALE
|
|
int "BRG Clock Prescale"
|
|
depends on MPC8XX_CONS
|
|
default 1
|
|
|
|
config SYS_SDSR
|
|
hex "SDSR Value"
|
|
depends on MPC8XX_CONS
|
|
default 0x83
|
|
|
|
config SYS_SDMR
|
|
hex "SDMR Value"
|
|
depends on MPC8XX_CONS
|
|
default 0x0
|
|
|
|
endif
|