2 # Serial device configuration
11 Select a default baudrate, where "default" has a driver-specific
12 meaning of either setting the baudrate for the early debug UART
13 in the SPL stage (most drivers) or for choosing a default baudrate
14 in the absence of an environment setting (serial_mxc.c).
16 config REQUIRE_SERIAL_CONSOLE
17 bool "Require a serial port for console"
18 # Running without a serial console is not supported by the
23 Require a serial port for the console, and panic if none is found
24 during serial port initialization (default y). Set this to n on
25 boards which have no debug serial port whatsoever.
27 config SPECIFY_CONSOLE_INDEX
28 bool "Specify the port number used for console"
29 default y if !DM_SERIAL || (SPL && !SPL_DM_SERIAL) || \
30 (TPL && !TPL_DM_SERIAL)
32 In various cases, we need to specify which of the UART devices that
33 a board or SoC has available are to be used for the console device
37 bool "Provide a serial driver"
41 In very space-constrained devices even the full UART driver is too
42 large. In this case the debug UART can still be used in some cases.
43 This option enables the full UART in U-Boot, so if is it disabled,
44 the full UART driver will be omitted, thus saving space.
46 config SPL_SERIAL_PRESENT
47 bool "Provide a serial driver in SPL"
51 In very space-constrained devices even the full UART driver is too
52 large. In this case the debug UART can still be used in some cases.
53 This option enables the full UART in SPL, so if is it disabled,
54 the full UART driver will be omitted, thus saving space.
56 # Logic to allow us to use the imply keyword to set what the default port
57 # should be. The default is otherwise 1.
77 int "UART used for console"
78 depends on SPECIFY_CONSOLE_INDEX
80 default 0 if CONS_INDEX_0
81 default 2 if CONS_INDEX_2
82 default 3 if CONS_INDEX_3
83 default 4 if CONS_INDEX_4
84 default 5 if CONS_INDEX_5
85 default 6 if CONS_INDEX_6
88 Set this to match the UART number of the serial console.
91 bool "Enable Driver Model for serial drivers"
94 Enable driver model for serial. This replaces
95 drivers/serial/serial.c with the serial uclass, which
96 implements serial_putc() etc. The uclass interface is
97 defined in include/serial.h.
99 config SERIAL_RX_BUFFER
100 bool "Enable RX buffer for serial input"
103 Enable RX buffer support for the serial driver. This enables
104 pasting longer strings, even when the RX FIFO of the UART is
105 not big enough (e.g. 16 bytes on the normal NS16550).
107 config SERIAL_RX_BUFFER_SIZE
109 depends on SERIAL_RX_BUFFER
112 The size of the RX buffer (needs to be power of 2)
114 config SERIAL_SEARCH_ALL
115 bool "Search for serial devices after default one failed"
118 The serial subsystem only searches for a single serial device
119 that was instantiated, but does not check whether it was probed
120 correctly. With this option set, we make successful probing
121 mandatory and search for fallback serial devices if the default
122 device does not work.
127 bool "Enable Driver Model for serial drivers in SPL"
128 depends on DM_SERIAL && SPL_DM
131 Enable driver model for serial in SPL. This replaces
132 drivers/serial/serial.c with the serial uclass, which
133 implements serial_putc() etc. The uclass interface is
134 defined in include/serial.h.
137 bool "Enable Driver Model for serial drivers in TPL"
139 default y if TPL && DM_SERIAL
141 Enable driver model for serial in TPL. This replaces
142 drivers/serial/serial.c with the serial uclass, which
143 implements serial_putc() etc. The uclass interface is
144 defined in include/serial.h.
147 bool "Enable an early debug UART for debugging"
149 The debug UART is intended for use very early in U-Boot to debug
150 problems when an ICE or other debug mechanism is not available.
152 To use it you should:
153 - Make sure your UART supports this interface
154 - Enable CONFIG_DEBUG_UART
155 - Enable the CONFIG for your UART to tell it to provide this interface
156 (e.g. CONFIG_DEBUG_UART_NS16550)
157 - Define the required settings as needed (see below)
158 - Call debug_uart_init() before use
159 - Call debug_uart_putc() to output a character
161 Depending on your platform it may be possible to use this UART before
162 a stack is available.
164 If your UART does not support this interface you can probably add
165 support quite easily. Remember that you cannot use driver model and
166 it is preferred to use no stack.
168 You must not use this UART once driver model is working and the
169 serial drivers are up and running (done in serial_init()). Otherwise
170 the drivers may conflict and you will get strange output.
173 prompt "Select which UART will provide the debug UART"
174 depends on DEBUG_UART
175 default DEBUG_UART_NS16550
177 config DEBUG_UART_ALTERA_JTAGUART
178 bool "Altera JTAG UART"
180 Select this to enable a debug UART using the altera_jtag_uart driver.
181 You will need to provide parameters to make this work. The driver will
182 be available until the real driver model serial is running.
184 config DEBUG_UART_ALTERA_UART
187 Select this to enable a debug UART using the altera_uart driver.
188 You will need to provide parameters to make this work. The driver will
189 be available until the real driver model serial is running.
191 config DEBUG_UART_AR933X
192 bool "QCA/Atheros ar933x"
193 depends on AR933X_UART
195 Select this to enable a debug UART using the ar933x uart driver.
196 You will need to provide parameters to make this work. The
197 driver will be available until the real driver model serial is
200 config DEBUG_ARC_SERIAL
202 depends on ARC_SERIAL
204 Select this to enable a debug UART using the ARC UART driver.
205 You will need to provide parameters to make this work. The
206 driver will be available until the real driver model serial is
209 config DEBUG_UART_ATMEL
212 Select this to enable a debug UART using the atmel usart driver. You
213 will need to provide parameters to make this work. The driver will
214 be available until the real driver-model serial is running.
216 config DEBUG_UART_BCM6345
218 depends on BCM6345_SERIAL
220 Select this to enable a debug UART on BCM6345 SoCs. You
221 will need to provide parameters to make this work. The driver will
222 be available until the real driver model serial is running.
224 config DEBUG_UART_NS16550
227 Select this to enable a debug UART using the ns16550 driver. You
228 will need to provide parameters to make this work. The driver will
229 be available until the real driver model serial is running.
231 config DEBUG_EFI_CONSOLE
235 Select this to enable a debug console which calls back to EFI to
236 output to the console. This can be useful for early debugging of
237 U-Boot when running on top of EFI (Extensive Firmware Interface).
238 This is a type of BIOS used by PCs.
240 config DEBUG_UART_S5P
243 Select this to enable a debug UART using the serial_s5p driver. You
244 will need to provide parameters to make this work. The driver will
245 be available until the real driver-model serial is running.
247 config DEBUG_UART_MESON
249 depends on MESON_SERIAL
251 Select this to enable a debug UART using the serial_meson driver. You
252 will need to provide parameters to make this work. The driver will
253 be available until the real driver-model serial is running.
255 config DEBUG_UART_UARTLITE
256 bool "Xilinx Uartlite"
258 Select this to enable a debug UART using the serial_uartlite driver.
259 You will need to provide parameters to make this work. The driver will
260 be available until the real driver-model serial is running.
262 config DEBUG_UART_ARM_DCC
265 Select this to enable a debug UART using the ARM JTAG DCC port.
266 The DCC port can be used for very early debugging and doesn't require
267 any additional setting like address/baudrate/clock. On systems without
268 any serial interface this is the easiest way how to get console.
269 Every ARM core has own DCC port which is the part of debug interface.
270 This port is available at least on ARMv6, ARMv7, ARMv8 and XScale
273 config DEBUG_MVEBU_A3700_UART
274 bool "Marvell Armada 3700"
276 Select this to enable a debug UART using the serial_mvebu driver. You
277 will need to provide parameters to make this work. The driver will
278 be available until the real driver-model serial is running.
280 config DEBUG_UART_ZYNQ
283 Select this to enable a debug UART using the serial_zynq driver. You
284 will need to provide parameters to make this work. The driver will
285 be available until the real driver-model serial is running.
287 config DEBUG_UART_APBUART
289 bool "Gaisler APBUART"
291 Select this to enable a debug UART using the serial_leon3 driver. You
292 will need to provide parameters to make this work. The driver will
293 be available until the real driver model serial is running.
295 config DEBUG_UART_PL010
298 Select this to enable a debug UART using the pl01x driver with the
299 PL010 UART type. You will need to provide parameters to make this
300 work. The driver will be available until the real driver model
303 config DEBUG_UART_PL011
306 Select this to enable a debug UART using the pl01x driver with the
307 PL011 UART type. You will need to provide parameters to make this
308 work. The driver will be available until the real driver model
311 config DEBUG_UART_PIC32
312 bool "Microchip PIC32"
313 depends on PIC32_SERIAL
315 Select this to enable a debug UART using the serial_pic32 driver. You
316 will need to provide parameters to make this work. The driver will
317 be available until the real driver model serial is running.
319 config DEBUG_UART_MXC
320 bool "IMX Serial port"
323 Select this to enable a debug UART using the serial_mxc driver. You
324 will need to provide parameters to make this work. The driver will
325 be available until the real driver model serial is running.
327 config DEBUG_UART_UNIPHIER
328 bool "UniPhier on-chip UART"
329 depends on ARCH_UNIPHIER
331 Select this to enable a debug UART using the UniPhier on-chip UART.
332 You will need to provide DEBUG_UART_BASE to make this work. The
333 driver will be available until the real driver-model serial is
336 config DEBUG_UART_OMAP
339 Select this to enable a debug UART using the omap ns16550 driver.
340 You will need to provide parameters to make this work. The driver
341 will be available until the real driver model serial is running.
345 config DEBUG_UART_BASE
346 hex "Base address of UART"
347 depends on DEBUG_UART
349 This is the base address of your UART for memory-mapped UARTs.
351 A default should be provided by your board, but if not you will need
352 to use the correct value here.
354 config DEBUG_UART_CLOCK
355 int "UART input clock"
356 depends on DEBUG_UART
358 The UART input clock determines the speed of the internal UART
359 circuitry. The baud rate is derived from this by dividing the input
362 A default should be provided by your board, but if not you will need
363 to use the correct value here.
365 config DEBUG_UART_SHIFT
366 int "UART register shift"
367 depends on DEBUG_UART
368 default 0 if DEBUG_UART
370 Some UARTs (notably ns16550) support different register layouts
371 where the registers are spaced either as bytes, words or some other
372 value. Use this value to specify the shift to use, where 0=byte
373 registers, 2=32-bit word registers, etc.
375 config DEBUG_UART_BOARD_INIT
376 bool "Enable board-specific debug UART init"
377 depends on DEBUG_UART
379 Some boards need to set things up before the debug UART can be used.
380 On these boards a call to debug_uart_init() is insufficient. When
381 this option is enabled, the function board_debug_uart_init() will
382 be called when debug_uart_init() is called. You can put any code
383 here that is needed to set up the UART ready for use, such as set
384 pin multiplexing or enable clocks.
386 config DEBUG_UART_ANNOUNCE
387 bool "Show a message when the debug UART starts up"
388 depends on DEBUG_UART
390 Enable this option to show a message when the debug UART is ready
391 for use. You will see a message like "<debug_uart> " as soon as
392 U-Boot has the UART ready for use (i.e. your code calls
393 debug_uart_init()). This can be useful just as a check that
394 everything is working.
396 config DEBUG_UART_SKIP_INIT
397 bool "Skip UART initialization"
399 Select this if the UART you want to use for debug output is already
400 initialized by the time U-Boot starts its execution.
402 config ALTERA_JTAG_UART
403 bool "Altera JTAG UART support"
406 Select this to enable an JTAG UART for Altera devices.The JTAG UART
407 core implements a method to communicate serial character streams
408 between a host PC and a Qsys system on an Altera FPGA. Please find
409 details on the "Embedded Peripherals IP User Guide" of Altera.
411 config ALTERA_JTAG_UART_BYPASS
412 bool "Bypass output when no connection"
413 depends on ALTERA_JTAG_UART
415 Bypass console output and keep going even if there is no JTAG
416 terminal connection with the host. The console output will resume
417 once the JTAG terminal is connected. Without the bypass, the console
418 output will wait forever until a JTAG terminal is connected. If you
422 bool "Altera UART support"
425 Select this to enable an UART for Altera devices. Please find
426 details on the "Embedded Peripherals IP User Guide" of Altera.
429 bool "QCA/Atheros ar933x UART support"
430 depends on DM_SERIAL && SOC_AR933X
432 Select this to enable UART support for QCA/Atheros ar933x
433 devices. This driver uses driver model and requires a device
434 tree binding to operate, please refer to the document at
435 doc/device-tree-bindings/serial/qca,ar9330-uart.txt.
438 bool "ARC UART support"
441 Select this to enable support for ARC UART now typically
442 only used in Synopsys DesignWare ARC simulators like nSIM.
445 bool "Atmel USART support"
447 Select this to enable USART support for Atmel SoCs. It can be
448 configured in the device tree, and input clock frequency can
449 be got from the clk node.
451 config BCM283X_MU_SERIAL
452 bool "Support for BCM283x Mini-UART"
453 depends on DM_SERIAL && ARCH_BCM283X
456 Select this to enable Mini-UART support on BCM283X family of SoCs.
458 config BCM283X_PL011_SERIAL
459 bool "Support for BCM283x PL011 UART"
460 depends on PL01X_SERIAL && ARCH_BCM283X
463 Select this to enable an overriding PL011 driver for BCM283X SoCs
464 that supports automatic disable, so that it only gets used when
465 the UART is actually muxed.
467 config BCM6345_SERIAL
468 bool "Support for BCM6345 UART"
469 depends on DM_SERIAL && ARCH_BMIPS
471 Select this to enable UART on BCM6345 SoCs.
473 config FSL_LINFLEXUART
474 bool "Freescale Linflex UART support"
477 Select this to enable the Linflex serial module found on some
478 NXP SoCs like S32V234.
481 bool "Freescale LPUART support"
483 Select this to enable a Low Power UART for Freescale VF610 and
484 QorIQ Layerscape devices.
486 config MVEBU_A3700_UART
487 bool "UART support for Armada 3700"
490 Choose this option to add support for UART driver on the Marvell
491 Armada 3700 SoC. The base address is configured via DT.
494 bool "IMX serial port support"
495 depends on MX5 || MX6
497 If you have a machine based on a Motorola IMX CPU you
498 can enable its onboard serial port by enabling this option.
500 config NULLDEV_SERIAL
501 bool "Null serial device"
503 Select this to enable null serial device support. A null serial
504 device merely acts as a placeholder for a serial device and does
505 nothing for all it's operation.
508 bool "Support for Microchip PIC32 on-chip UART"
509 depends on DM_SERIAL && MACH_PIC32
512 Support for the UART found on Microchip PIC32 SoC's.
515 bool "NS16550 UART or compatible"
517 Support NS16550 UART or compatible. This can be enabled in the
518 device tree with the correct input clock frequency. If the input
519 clock frequency is not defined in the device tree, the macro
520 CONFIG_SYS_NS16550_CLK defined in a legacy board header file will
521 be used. It can be a constant or a function to get clock, eg,
524 config INTEL_MID_SERIAL
525 bool "Intel MID platform UART support"
526 depends on DM_SERIAL && OF_CONTROL
530 Select this to enable a UART for Intel MID platforms.
531 This uses the ns16550 driver as a library.
534 bool "ARM PL010 driver"
535 depends on !DM_SERIAL
537 Select this to enable a UART for platforms using PL010.
540 bool "ARM PL011 driver"
541 depends on !DM_SERIAL
543 Select this to enable a UART for platforms using PL011.
546 bool "ARM PL010 and PL011 driver"
549 Select this to enable a UART for platforms using PL010 or PL011.
551 config ROCKCHIP_SERIAL
552 bool "Rockchip on-chip UART support"
553 depends on DM_SERIAL && SPL_OF_PLATDATA
555 Select this to enable a debug UART for Rockchip devices when using
556 CONFIG_SPL_OF_PLATDATA (i.e. a compiled-in device tree replacemenmt).
557 This uses the ns16550 driver, converting the platdata from of-platdata
558 to the ns16550 format.
560 config SANDBOX_SERIAL
561 bool "Sandbox UART support"
564 Select this to enable a seral UART for sandbox. This is required to
565 operate correctly, otherwise you will see no serial output from
566 sandbox. The emulated UART will display to the console and console
567 input will be fed into the UART. This allows you to interact with
570 The operation of the console is controlled by the -t command-line
571 flag. In raw mode, U-Boot sees all characters from the terminal
572 before they are processed, including Ctrl-C. In cooked mode, Ctrl-C
573 is processed by the terminal, and terminates U-Boot. Valid options
576 -t raw-with-sigs Raw mode, Ctrl-C will terminate U-Boot
577 -t raw Raw mode, Ctrl-C is processed by U-Boot
578 -t cooked Cooked mode, Ctrl-C terminates
581 bool "Renesas SCIF UART support"
582 depends on SH || ARCH_RMOBILE
584 Select this to enable Renesas SCIF UART. To operate serial ports
585 on systems with RCar or SH SoCs, say Y to this option. If unsure,
588 config UNIPHIER_SERIAL
589 bool "Support for UniPhier on-chip UART"
590 depends on ARCH_UNIPHIER
593 If you have a UniPhier based board and want to use the on-chip
594 serial ports, say Y to this option. If unsure, say N.
596 config XILINX_UARTLITE
597 bool "Xilinx Uarlite support"
598 depends on DM_SERIAL && (MICROBLAZE || ARCH_ZYNQ || ARCH_ZYNQMP || 4xx)
600 If you have a Xilinx based board and want to use the uartlite
601 serial ports, say Y to this option. If unsure, say N.
604 bool "Support for Amlogic Meson UART"
605 depends on DM_SERIAL && ARCH_MESON
607 If you have an Amlogic Meson based board and want to use the on-chip
608 serial ports, say Y to this option. If unsure, say N.
611 bool "Qualcomm on-chip UART"
614 Support Data Mover UART used on Qualcomm Snapdragon SoCs.
615 It should support all Qualcomm devices with UARTDM version 1.4,
616 for example APQ8016 and MSM8916.
617 Single baudrate is supported in current implementation (115200).
620 bool "PXA serial port support"
622 If you have a machine based on a Marvell XScale PXA2xx CPU you
623 can enable its onboard serial ports by enabling this option.
625 config STI_ASC_SERIAL
626 bool "STMicroelectronics on-chip UART"
627 depends on DM_SERIAL && ARCH_STI
629 Select this to enable Asynchronous Serial Controller available
630 on STiH410 SoC. This is a basic implementation, it supports
631 following baudrate 9600, 19200, 38400, 57600 and 115200.
634 bool "STMicroelectronics STM32 SoCs on-chip UART"
635 depends on DM_SERIAL && (STM32F4 || STM32F7 || STM32H7 || ARCH_STM32MP)
637 If you have a machine based on a STM32 F4, F7, H7 or MP1 SOC
638 you can enable its onboard serial ports, say Y to this option.
642 bool "Cadence (Xilinx Zynq) UART support"
643 depends on DM_SERIAL && (MICROBLAZE || ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_ZYNQMP_R5)
645 This driver supports the Cadence UART. It is found e.g. in Xilinx
649 bool "Console driver for MPC8XX"
654 prompt "Console port"
655 default 8xx_CONS_SMC1
656 depends on MPC8XX_CONS
658 Depending on board, select one serial port
659 (CONFIG_8xx_CONS_SMC1 or CONFIG_8xx_CONS_SMC2)
669 config SYS_SMC_RXBUFLEN
670 int "Console Rx buffer length"
671 depends on MPC8XX_CONS
674 With CONFIG_SYS_SMC_RXBUFLEN it is possible to define
675 the maximum receive buffer length for the SMC.
676 This option is actual only for 8xx possible.
677 If using CONFIG_SYS_SMC_RXBUFLEN also CONFIG_SYS_MAXIDLE
678 must be defined, to setup the maximum idle timeout for
682 int "maximum idle timeout"
683 depends on MPC8XX_CONS
686 config SYS_BRGCLK_PRESCALE
687 int "BRG Clock Prescale"
688 depends on MPC8XX_CONS
693 depends on MPC8XX_CONS
698 depends on MPC8XX_CONS