1# 2# Serial device configuration 3# 4 5menu "Serial drivers" 6 7config BAUDRATE 8 int "Default baudrate" 9 default 115200 10 help 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). 15 16config REQUIRE_SERIAL_CONSOLE 17 bool "Require a serial port for console" 18 # Running without a serial console is not supported by the 19 # non-dm serial code 20 depends on DM_SERIAL 21 default y 22 help 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. 26 27config SERIAL_PRESENT 28 bool "Provide a serial driver" 29 depends on DM_SERIAL 30 default y 31 help 32 In very space-constrained devices even the full UART driver is too 33 large. In this case the debug UART can still be used in some cases. 34 This option enables the full UART in U-Boot, so if is it disabled, 35 the full UART driver will be omitted, thus saving space. 36 37config SPL_SERIAL_PRESENT 38 bool "Provide a serial driver in SPL" 39 depends on DM_SERIAL 40 default y 41 help 42 In very space-constrained devices even the full UART driver is too 43 large. In this case the debug UART can still be used in some cases. 44 This option enables the full UART in SPL, so if is it disabled, 45 the full UART driver will be omitted, thus saving space. 46 47config CONS_INDEX 48 int "UART used for console" 49 depends on ARCH_SUNXI 50 default 2 if MACH_SUN5I 51 default 5 if MACH_SUN8I_A23 || MACH_SUN8I_A33 52 default 1 53 help 54 Configures the console index. 55 For Allwinner SoC., default values are 2 for SUN5I and 5 for A23/A33. 56 Otherwise, the index equals 1. 57 58config DM_SERIAL 59 bool "Enable Driver Model for serial drivers" 60 depends on DM 61 help 62 Enable driver model for serial. This replaces 63 drivers/serial/serial.c with the serial uclass, which 64 implements serial_putc() etc. The uclass interface is 65 defined in include/serial.h. 66 67config SPL_DM_SERIAL 68 bool "Enable Driver Model for serial drivers" 69 depends on DM_SERIAL 70 default y if SPL && DM_SERIAL 71 help 72 Enable driver model for serial in SPL. This replaces 73 drivers/serial/serial.c with the serial uclass, which 74 implements serial_putc() etc. The uclass interface is 75 defined in include/serial.h. 76 77config TPL_DM_SERIAL 78 bool "Enable Driver Model for serial drivers" 79 depends on DM_SERIAL 80 default y if TPL && DM_SERIAL 81 help 82 Enable driver model for serial in TPL. This replaces 83 drivers/serial/serial.c with the serial uclass, which 84 implements serial_putc() etc. The uclass interface is 85 defined in include/serial.h. 86 87config DEBUG_UART 88 bool "Enable an early debug UART for debugging" 89 help 90 The debug UART is intended for use very early in U-Boot to debug 91 problems when an ICE or other debug mechanism is not available. 92 93 To use it you should: 94 - Make sure your UART supports this interface 95 - Enable CONFIG_DEBUG_UART 96 - Enable the CONFIG for your UART to tell it to provide this interface 97 (e.g. CONFIG_DEBUG_UART_NS16550) 98 - Define the required settings as needed (see below) 99 - Call debug_uart_init() before use 100 - Call debug_uart_putc() to output a character 101 102 Depending on your platform it may be possible to use this UART before 103 a stack is available. 104 105 If your UART does not support this interface you can probably add 106 support quite easily. Remember that you cannot use driver model and 107 it is preferred to use no stack. 108 109 You must not use this UART once driver model is working and the 110 serial drivers are up and running (done in serial_init()). Otherwise 111 the drivers may conflict and you will get strange output. 112 113choice 114 prompt "Select which UART will provide the debug UART" 115 depends on DEBUG_UART 116 default DEBUG_UART_NS16550 117 118config DEBUG_UART_ALTERA_JTAGUART 119 bool "Altera JTAG UART" 120 help 121 Select this to enable a debug UART using the altera_jtag_uart driver. 122 You will need to provide parameters to make this work. The driver will 123 be available until the real driver model serial is running. 124 125config DEBUG_UART_ALTERA_UART 126 bool "Altera UART" 127 help 128 Select this to enable a debug UART using the altera_uart driver. 129 You will need to provide parameters to make this work. The driver will 130 be available until the real driver model serial is running. 131 132config DEBUG_UART_AR933X 133 bool "QCA/Atheros ar933x" 134 depends on AR933X_UART 135 help 136 Select this to enable a debug UART using the ar933x uart driver. 137 You will need to provide parameters to make this work. The 138 driver will be available until the real driver model serial is 139 running. 140 141config DEBUG_UART_ATMEL 142 bool "Atmel USART" 143 help 144 Select this to enable a debug UART using the atmel usart driver. You 145 will need to provide parameters to make this work. The driver will 146 be available until the real driver-model serial is running. 147 148config DEBUG_UART_NS16550 149 bool "ns16550" 150 help 151 Select this to enable a debug UART using the ns16550 driver. You 152 will need to provide parameters to make this work. The driver will 153 be available until the real driver model serial is running. 154 155config DEBUG_EFI_CONSOLE 156 bool "EFI" 157 depends on EFI_APP 158 help 159 Select this to enable a debug console which calls back to EFI to 160 output to the console. This can be useful for early debugging of 161 U-Boot when running on top of EFI (Extensive Firmware Interface). 162 This is a type of BIOS used by PCs. 163 164config DEBUG_UART_S5P 165 bool "Samsung S5P" 166 help 167 Select this to enable a debug UART using the serial_s5p driver. You 168 will need to provide parameters to make this work. The driver will 169 be available until the real driver-model serial is running. 170 171config DEBUG_UART_MESON 172 bool "Amlogic Meson" 173 depends on MESON_SERIAL 174 help 175 Select this to enable a debug UART using the serial_meson driver. You 176 will need to provide parameters to make this work. The driver will 177 be available until the real driver-model serial is running. 178 179config DEBUG_UART_UARTLITE 180 bool "Xilinx Uartlite" 181 help 182 Select this to enable a debug UART using the serial_uartlite driver. 183 You will need to provide parameters to make this work. The driver will 184 be available until the real driver-model serial is running. 185 186config DEBUG_UART_ARM_DCC 187 bool "ARM DCC" 188 help 189 Select this to enable a debug UART using the ARM JTAG DCC port. 190 The DCC port can be used for very early debugging and doesn't require 191 any additional setting like address/baudrate/clock. On systems without 192 any serial interface this is the easiest way how to get console. 193 Every ARM core has own DCC port which is the part of debug interface. 194 This port is available at least on ARMv6, ARMv7, ARMv8 and XScale 195 architectures. 196 197config DEBUG_MVEBU_A3700_UART 198 bool "Marvell Armada 3700" 199 help 200 Select this to enable a debug UART using the serial_mvebu driver. You 201 will need to provide parameters to make this work. The driver will 202 be available until the real driver-model serial is running. 203 204config DEBUG_UART_ZYNQ 205 bool "Xilinx Zynq" 206 help 207 Select this to enable a debug UART using the serial_zynq driver. You 208 will need to provide parameters to make this work. The driver will 209 be available until the real driver-model serial is running. 210 211config DEBUG_UART_APBUART 212 depends on LEON3 213 bool "Gaisler APBUART" 214 help 215 Select this to enable a debug UART using the serial_leon3 driver. You 216 will need to provide parameters to make this work. The driver will 217 be available until the real driver model serial is running. 218 219config DEBUG_UART_PL010 220 bool "pl010" 221 help 222 Select this to enable a debug UART using the pl01x driver with the 223 PL010 UART type. You will need to provide parameters to make this 224 work. The driver will be available until the real driver model 225 serial is running. 226 227config DEBUG_UART_PL011 228 bool "pl011" 229 help 230 Select this to enable a debug UART using the pl01x driver with the 231 PL011 UART type. You will need to provide parameters to make this 232 work. The driver will be available until the real driver model 233 serial is running. 234 235config DEBUG_UART_PIC32 236 bool "Microchip PIC32" 237 depends on PIC32_SERIAL 238 help 239 Select this to enable a debug UART using the serial_pic32 driver. You 240 will need to provide parameters to make this work. The driver will 241 be available until the real driver model serial is running. 242 243config DEBUG_UART_UNIPHIER 244 bool "UniPhier on-chip UART" 245 depends on ARCH_UNIPHIER 246 help 247 Select this to enable a debug UART using the UniPhier on-chip UART. 248 You will need to provide DEBUG_UART_BASE to make this work. The 249 driver will be available until the real driver-model serial is 250 running. 251 252endchoice 253 254config DEBUG_UART_BASE 255 hex "Base address of UART" 256 depends on DEBUG_UART 257 help 258 This is the base address of your UART for memory-mapped UARTs. 259 260 A default should be provided by your board, but if not you will need 261 to use the correct value here. 262 263config DEBUG_UART_CLOCK 264 int "UART input clock" 265 depends on DEBUG_UART 266 help 267 The UART input clock determines the speed of the internal UART 268 circuitry. The baud rate is derived from this by dividing the input 269 clock down. 270 271 A default should be provided by your board, but if not you will need 272 to use the correct value here. 273 274config DEBUG_UART_SHIFT 275 int "UART register shift" 276 depends on DEBUG_UART 277 default 0 if DEBUG_UART 278 help 279 Some UARTs (notably ns16550) support different register layouts 280 where the registers are spaced either as bytes, words or some other 281 value. Use this value to specify the shift to use, where 0=byte 282 registers, 2=32-bit word registers, etc. 283 284config DEBUG_UART_BOARD_INIT 285 bool "Enable board-specific debug UART init" 286 depends on DEBUG_UART 287 help 288 Some boards need to set things up before the debug UART can be used. 289 On these boards a call to debug_uart_init() is insufficient. When 290 this option is enabled, the function board_debug_uart_init() will 291 be called when debug_uart_init() is called. You can put any code 292 here that is needed to set up the UART ready for use, such as set 293 pin multiplexing or enable clocks. 294 295config DEBUG_UART_ANNOUNCE 296 bool "Show a message when the debug UART starts up" 297 depends on DEBUG_UART 298 help 299 Enable this option to show a message when the debug UART is ready 300 for use. You will see a message like "<debug_uart> " as soon as 301 U-Boot has the UART ready for use (i.e. your code calls 302 debug_uart_init()). This can be useful just as a check that 303 everything is working. 304 305config DEBUG_UART_SKIP_INIT 306 bool "Skip UART initialization" 307 help 308 Select this if the UART you want to use for debug output is already 309 initialized by the time U-Boot starts its execution. 310 311config ALTERA_JTAG_UART 312 bool "Altera JTAG UART support" 313 depends on DM_SERIAL 314 help 315 Select this to enable an JTAG UART for Altera devices.The JTAG UART 316 core implements a method to communicate serial character streams 317 between a host PC and a Qsys system on an Altera FPGA. Please find 318 details on the "Embedded Peripherals IP User Guide" of Altera. 319 320config ALTERA_JTAG_UART_BYPASS 321 bool "Bypass output when no connection" 322 depends on ALTERA_JTAG_UART 323 help 324 Bypass console output and keep going even if there is no JTAG 325 terminal connection with the host. The console output will resume 326 once the JTAG terminal is connected. Without the bypass, the console 327 output will wait forever until a JTAG terminal is connected. If you 328 not are sure, say Y. 329 330config ALTERA_UART 331 bool "Altera UART support" 332 depends on DM_SERIAL 333 help 334 Select this to enable an UART for Altera devices. Please find 335 details on the "Embedded Peripherals IP User Guide" of Altera. 336 337config AR933X_UART 338 bool "QCA/Atheros ar933x UART support" 339 depends on DM_SERIAL && SOC_AR933X 340 help 341 Select this to enable UART support for QCA/Atheros ar933x 342 devices. This driver uses driver model and requires a device 343 tree binding to operate, please refer to the document at 344 doc/device-tree-bindings/serial/qca,ar9330-uart.txt. 345 346config ATMEL_USART 347 bool "Atmel USART support" 348 help 349 Select this to enable USART support for Atmel SoCs. It can be 350 configured in the device tree, and input clock frequency can 351 be got from the clk node. 352 353config FSL_LPUART 354 bool "Freescale LPUART support" 355 help 356 Select this to enable a Low Power UART for Freescale VF610 and 357 QorIQ Layerscape devices. 358 359config MVEBU_A3700_UART 360 bool "UART support for Armada 3700" 361 default n 362 help 363 Choose this option to add support for UART driver on the Marvell 364 Armada 3700 SoC. The base address is configured via DT. 365 366config MXC_UART 367 bool "IMX serial port support" 368 depends on MX5 || MX6 369 help 370 If you have a machine based on a Motorola IMX CPU you 371 can enable its onboard serial port by enabling this option. 372 373config PIC32_SERIAL 374 bool "Support for Microchip PIC32 on-chip UART" 375 depends on DM_SERIAL && MACH_PIC32 376 default y 377 help 378 Support for the UART found on Microchip PIC32 SoC's. 379 380config SYS_NS16550 381 bool "NS16550 UART or compatible" 382 help 383 Support NS16550 UART or compatible. This can be enabled in the 384 device tree with the correct input clock frequency. If the input 385 clock frequency is not defined in the device tree, the macro 386 CONFIG_SYS_NS16550_CLK defined in a legacy board header file will 387 be used. It can be a constant or a function to get clock, eg, 388 get_serial_clock(). 389 390config INTEL_MID_SERIAL 391 bool "Intel MID platform UART support" 392 depends on DM_SERIAL && OF_CONTROL 393 depends on INTEL_MID 394 select SYS_NS16550 395 help 396 Select this to enable a UART for Intel MID platforms. 397 This uses the ns16550 driver as a library. 398 399config ROCKCHIP_SERIAL 400 bool "Rockchip on-chip UART support" 401 depends on DM_SERIAL && SPL_OF_PLATDATA 402 help 403 Select this to enable a debug UART for Rockchip devices when using 404 CONFIG_SPL_OF_PLATDATA (i.e. a compiled-in device tree replacemenmt). 405 This uses the ns16550 driver, converting the platdata from of-platdata 406 to the ns16550 format. 407 408config SANDBOX_SERIAL 409 bool "Sandbox UART support" 410 depends on SANDBOX 411 help 412 Select this to enable a seral UART for sandbox. This is required to 413 operate correctly, otherwise you will see no serial output from 414 sandbox. The emulated UART will display to the console and console 415 input will be fed into the UART. This allows you to interact with 416 U-Boot. 417 418 The operation of the console is controlled by the -t command-line 419 flag. In raw mode, U-Boot sees all characters from the terminal 420 before they are processed, including Ctrl-C. In cooked mode, Ctrl-C 421 is processed by the terminal, and terminates U-Boot. Valid options 422 are: 423 424 -t raw-with-sigs Raw mode, Ctrl-C will terminate U-Boot 425 -t raw Raw mode, Ctrl-C is processed by U-Boot 426 -t cooked Cooked mode, Ctrl-C terminates 427 428config UNIPHIER_SERIAL 429 bool "Support for UniPhier on-chip UART" 430 depends on ARCH_UNIPHIER 431 default y 432 help 433 If you have a UniPhier based board and want to use the on-chip 434 serial ports, say Y to this option. If unsure, say N. 435 436config XILINX_UARTLITE 437 bool "Xilinx Uarlite support" 438 depends on DM_SERIAL && (MICROBLAZE || ARCH_ZYNQ || ARCH_ZYNQMP || 4xx) 439 help 440 If you have a Xilinx based board and want to use the uartlite 441 serial ports, say Y to this option. If unsure, say N. 442 443config MESON_SERIAL 444 bool "Support for Amlogic Meson UART" 445 depends on DM_SERIAL && ARCH_MESON 446 help 447 If you have an Amlogic Meson based board and want to use the on-chip 448 serial ports, say Y to this option. If unsure, say N. 449 450config MSM_SERIAL 451 bool "Qualcomm on-chip UART" 452 depends on DM_SERIAL 453 help 454 Support Data Mover UART used on Qualcomm Snapdragon SoCs. 455 It should support all Qualcomm devices with UARTDM version 1.4, 456 for example APQ8016 and MSM8916. 457 Single baudrate is supported in current implementation (115200). 458 459config PXA_SERIAL 460 bool "PXA serial port support" 461 help 462 If you have a machine based on a Marvell XScale PXA2xx CPU you 463 can enable its onboard serial ports by enabling this option. 464 465config STI_ASC_SERIAL 466 bool "STMicroelectronics on-chip UART" 467 depends on DM_SERIAL && ARCH_STI 468 help 469 Select this to enable Asynchronous Serial Controller available 470 on STiH410 SoC. This is a basic implementation, it supports 471 following baudrate 9600, 19200, 38400, 57600 and 115200. 472 473endmenu 474