1# 2# Serial device configuration 3# 4 5menuconfig SERIAL 6 bool "Serial" 7 default y 8 help 9 Enable support for serial drivers. This allows use of a serial UART 10 for displaying messages while U-Boot is running. It also brings in 11 printf() and panic() functions. This should normally be enabled 12 unless there are space reasons not to. If you just need to disable 13 the console you can adjust the stdout environment variable or use 14 SILENT_CONSOLE. 15 16if SERIAL 17 18config BAUDRATE 19 int "Default baudrate" 20 default 115200 21 help 22 Select a default baudrate, where "default" has a driver-specific 23 meaning of either setting the baudrate for the early debug UART 24 in the SPL stage (most drivers) or for choosing a default baudrate 25 in the absence of an environment setting (serial_mxc.c). 26 27config REQUIRE_SERIAL_CONSOLE 28 bool "Require a serial port for console" 29 # Running without a serial console is not supported by the 30 # non-dm serial code 31 depends on DM_SERIAL 32 default y 33 help 34 Require a serial port for the console, and panic if none is found 35 during serial port initialization (default y). Set this to n on 36 boards which have no debug serial port whatsoever. 37 38config SPECIFY_CONSOLE_INDEX 39 bool "Specify the port number used for console" 40 default y if !DM_SERIAL || (SPL && !SPL_DM_SERIAL) || \ 41 (TPL && !TPL_DM_SERIAL) 42 help 43 In various cases, we need to specify which of the UART devices that 44 a board or SoC has available are to be used for the console device 45 in U-Boot. 46 47config SERIAL_PRESENT 48 bool "Provide a serial driver" 49 depends on DM_SERIAL 50 default y 51 help 52 In very space-constrained devices even the full UART driver is too 53 large. In this case the debug UART can still be used in some cases. 54 This option enables the full UART in U-Boot, so if is it disabled, 55 the full UART driver will be omitted, thus saving space. 56 57config SPL_SERIAL_PRESENT 58 bool "Provide a serial driver in SPL" 59 depends on DM_SERIAL && SPL 60 default y 61 help 62 In very space-constrained devices even the full UART driver is too 63 large. In this case the debug UART can still be used in some cases. 64 This option enables the full UART in SPL, so if is it disabled, 65 the full UART driver will be omitted, thus saving space. 66 67config TPL_SERIAL_PRESENT 68 bool "Provide a serial driver in TPL" 69 depends on DM_SERIAL && TPL 70 default y 71 help 72 In very space-constrained devices even the full UART driver is too 73 large. In this case the debug UART can still be used in some cases. 74 This option enables the full UART in TPL, so if is it disabled, 75 the full UART driver will be omitted, thus saving space. 76 77config VPL_SERIAL_PRESENT 78 bool "Provide a serial driver in VPL" 79 depends on DM_SERIAL && VPL 80 default y 81 help 82 In very space-constrained devices even the full UART driver is too 83 large. In this case the debug UART can still be used in some cases. 84 This option enables the full UART in TPL, so if is it disabled, 85 the full UART driver will be omitted, thus saving space. 86 87config CONS_INDEX 88 int "UART used for console" 89 depends on SPECIFY_CONSOLE_INDEX 90 range 0 6 91 default 1 92 help 93 Set this to match the UART number of the serial console. 94 95config DM_SERIAL 96 bool "Enable Driver Model for serial drivers" 97 depends on DM 98 select SYS_MALLOC_F 99 help 100 Enable driver model for serial. This replaces 101 drivers/serial/serial.c with the serial uclass, which 102 implements serial_putc() etc. The uclass interface is 103 defined in include/serial.h. 104 105config SERIAL_RX_BUFFER 106 bool "Enable RX buffer for serial input" 107 depends on DM_SERIAL 108 help 109 Enable RX buffer support for the serial driver. This enables 110 pasting longer strings, even when the RX FIFO of the UART is 111 not big enough (e.g. 16 bytes on the normal NS16550). 112 113config SERIAL_RX_BUFFER_SIZE 114 int "RX buffer size" 115 depends on SERIAL_RX_BUFFER 116 default 256 117 help 118 The size of the RX buffer (needs to be power of 2) 119 120config SERIAL_PUTS 121 bool "Enable printing strings all at once" 122 depends on DM_SERIAL 123 help 124 Some serial drivers are much more efficient when printing multiple 125 characters at once rather than printing characters individually. This 126 can be because they can load a fifo, or because individual print 127 calls have a constant overhead. With this option set, the serial 128 subsystem will try to provide serial drivers with as many characters 129 at once as possible, instead of printing characters one by one. Most 130 serial drivers do not need this config to print efficiently. If 131 unsure, say N. 132 133config SERIAL_SEARCH_ALL 134 bool "Search for serial devices after default one failed" 135 depends on DM_SERIAL 136 help 137 The serial subsystem only searches for a single serial device 138 that was instantiated, but does not check whether it was probed 139 correctly. With this option set, we make successful probing 140 mandatory and search for fallback serial devices if the default 141 device does not work. 142 143 If unsure, say N. 144 145config SERIAL_PROBE_ALL 146 bool "Probe all available serial devices" 147 depends on DM_SERIAL 148 help 149 The serial subsystem only probes for a single serial device, 150 but does not probe for other remaining serial devices. 151 With this option set, we make probing and searching for 152 all available devices optional. 153 Normally, U-Boot talks to one serial port at a time, but SBSA 154 compliant UART devices like PL011 require initialization 155 by firmware and to let the kernel use serial port for sending 156 and receiving the characters. 157 158 If unsure, say N. 159 160config SPL_DM_SERIAL 161 bool "Enable Driver Model for serial drivers in SPL" 162 depends on DM_SERIAL && SPL_DM 163 select SYS_SPL_MALLOC_F 164 default y 165 help 166 Enable driver model for serial in SPL. This replaces 167 drivers/serial/serial.c with the serial uclass, which 168 implements serial_putc() etc. The uclass interface is 169 defined in include/serial.h. 170 171config TPL_DM_SERIAL 172 bool "Enable Driver Model for serial drivers in TPL" 173 depends on DM_SERIAL && TPL_DM 174 select SYS_TPL_MALLOC_F 175 default y if TPL && DM_SERIAL 176 help 177 Enable driver model for serial in TPL. This replaces 178 drivers/serial/serial.c with the serial uclass, which 179 implements serial_putc() etc. The uclass interface is 180 defined in include/serial.h. 181 182config VPL_DM_SERIAL 183 bool "Enable Driver Model for serial drivers in VPL" 184 depends on DM_SERIAL 185 default y if VPL && DM_SERIAL 186 help 187 Enable driver model for serial in VPL. This replaces 188 drivers/serial/serial.c with the serial uclass, which 189 implements serial_putc() etc. The uclass interface is 190 defined in include/serial.h. 191 192config DEBUG_UART 193 bool "Enable an early debug UART for debugging" 194 help 195 The debug UART is intended for use very early in U-Boot to debug 196 problems when an ICE or other debug mechanism is not available. 197 198 To use it you should: 199 - Make sure your UART supports this interface 200 - Enable CONFIG_DEBUG_UART 201 - Enable the CONFIG for your UART to tell it to provide this interface 202 (e.g. CONFIG_DEBUG_UART_NS16550) 203 - Define the required settings as needed (see below) 204 - Call debug_uart_init() before use 205 - Call debug_uart_putc() to output a character 206 207 Depending on your platform it may be possible to use this UART before 208 a stack is available. 209 210 If your UART does not support this interface you can probably add 211 support quite easily. Remember that you cannot use driver model and 212 it is preferred to use no stack. 213 214 You must not use this UART once driver model is working and the 215 serial drivers are up and running (done in serial_init()). Otherwise 216 the drivers may conflict and you will get strange output. 217 218choice 219 prompt "Select which UART will provide the debug UART" 220 depends on DEBUG_UART 221 default DEBUG_UART_NS16550 222 223config DEBUG_UART_ALTERA_JTAGUART 224 bool "Altera JTAG UART" 225 depends on ALTERA_JTAG_UART 226 help 227 Select this to enable a debug UART using the altera_jtag_uart driver. 228 You will need to provide parameters to make this work. The driver will 229 be available until the real driver model serial is running. 230 231config DEBUG_UART_ALTERA_UART 232 bool "Altera UART" 233 depends on ALTERA_UART 234 help 235 Select this to enable a debug UART using the altera_uart driver. 236 You will need to provide parameters to make this work. The driver will 237 be available until the real driver model serial is running. 238 239config DEBUG_UART_AR933X 240 bool "QCA/Atheros ar933x" 241 depends on AR933X_UART 242 help 243 Select this to enable a debug UART using the ar933x uart driver. 244 You will need to provide parameters to make this work. The 245 driver will be available until the real driver model serial is 246 running. 247 248config DEBUG_ARC_SERIAL 249 bool "ARC UART" 250 depends on ARC_SERIAL 251 help 252 Select this to enable a debug UART using the ARC UART driver. 253 You will need to provide parameters to make this work. The 254 driver will be available until the real driver model serial is 255 running. 256 257config DEBUG_UART_ATMEL 258 bool "Atmel USART" 259 depends on ATMEL_USART 260 help 261 Select this to enable a debug UART using the atmel usart driver. You 262 will need to provide parameters to make this work. The driver will 263 be available until the real driver-model serial is running. 264 265config DEBUG_UART_BCM6345 266 bool "BCM6345 UART" 267 depends on BCM6345_SERIAL 268 help 269 Select this to enable a debug UART on BCM6345 SoCs. You 270 will need to provide parameters to make this work. The driver will 271 be available until the real driver model serial is running. 272 273config DEBUG_UART_NS16550 274 bool "ns16550" 275 depends on SYS_NS16550 276 help 277 Select this to enable a debug UART using the ns16550 driver. You 278 will need to provide parameters to make this work. The driver will 279 be available until the real driver model serial is running. 280 281config DEBUG_EFI_CONSOLE 282 bool "EFI" 283 depends on EFI_APP 284 help 285 Select this to enable a debug console which calls back to EFI to 286 output to the console. This can be useful for early debugging of 287 U-Boot when running on top of EFI (Extensive Firmware Interface). 288 This is a type of BIOS used by PCs. 289 290config DEBUG_SBI_CONSOLE 291 bool "SBI" 292 depends on SBI_V01 293 help 294 Select this to enable a debug console which calls back to SBI to 295 output to the console. This can be useful for early debugging of 296 U-Boot when running on top of SBI (Supervisor Binary Interface). 297 298config DEBUG_UART_S5P 299 bool "Samsung S5P" 300 depends on ARCH_APPLE || ARCH_EXYNOS || ARCH_S5PC1XX 301 help 302 Select this to enable a debug UART using the serial_s5p driver. You 303 will need to provide parameters to make this work. The driver will 304 be available until the real driver-model serial is running. 305 306config DEBUG_UART_MSM_GENI 307 bool "Qualcomm snapdragon" 308 depends on ARCH_SNAPDRAGON 309 help 310 Select this to enable a debug UART using the serial_msm driver. You 311 will need to provide parameters to make this work. The driver will 312 be available until the real driver-model serial is running. 313 314config DEBUG_UART_MESON 315 bool "Amlogic Meson" 316 depends on MESON_SERIAL 317 help 318 Select this to enable a debug UART using the serial_meson driver. You 319 will need to provide parameters to make this work. The driver will 320 be available until the real driver-model serial is running. 321 322config DEBUG_UART_UARTLITE 323 bool "Xilinx Uartlite" 324 depends on XILINX_UARTLITE 325 help 326 Select this to enable a debug UART using the serial_uartlite driver. 327 You will need to provide parameters to make this work. The driver will 328 be available until the real driver-model serial is running. 329 330config DEBUG_UART_ARM_DCC 331 bool "ARM DCC" 332 depends on ARM_DCC 333 help 334 Select this to enable a debug UART using the ARM JTAG DCC port. 335 The DCC port can be used for very early debugging and doesn't require 336 any additional setting like address/baudrate/clock. On systems without 337 any serial interface this is the easiest way how to get console. 338 Every ARM core has own DCC port which is the part of debug interface. 339 This port is available at least on ARMv6, ARMv7, ARMv8 and XScale 340 architectures. 341 342config DEBUG_MVEBU_A3700_UART 343 bool "Marvell Armada 3700" 344 depends on MVEBU_A3700_UART 345 help 346 Select this to enable a debug UART using the serial_mvebu driver. You 347 will need to provide parameters to make this work. The driver will 348 be available until the real driver-model serial is running. 349 350config DEBUG_UART_ZYNQ 351 bool "Xilinx Zynq" 352 depends on ZYNQ_SERIAL 353 help 354 Select this to enable a debug UART using the serial_zynq driver. You 355 will need to provide parameters to make this work. The driver will 356 be available until the real driver-model serial is running. 357 358config DEBUG_UART_APBUART 359 depends on LEON3 360 bool "Gaisler APBUART" 361 help 362 Select this to enable a debug UART using the serial_leon3 driver. You 363 will need to provide parameters to make this work. The driver will 364 be available until the real driver model serial is running. 365 366config DEBUG_UART_PL010 367 bool "pl010" 368 depends on PL01X_SERIAL 369 help 370 Select this to enable a debug UART using the pl01x driver with the 371 PL010 UART type. You will need to provide parameters to make this 372 work. The driver will be available until the real driver model 373 serial is running. 374 375config DEBUG_UART_PL011 376 bool "pl011" 377 depends on PL01X_SERIAL || PL011_SERIAL 378 help 379 Select this to enable a debug UART using the pl01x driver with the 380 PL011 UART type. You will need to provide parameters to make this 381 work. The driver will be available until the real driver model 382 serial is running. 383 384config DEBUG_UART_PIC32 385 bool "Microchip PIC32" 386 depends on PIC32_SERIAL 387 help 388 Select this to enable a debug UART using the serial_pic32 driver. You 389 will need to provide parameters to make this work. The driver will 390 be available until the real driver model serial is running. 391 392config DEBUG_UART_MXC 393 bool "IMX Serial port" 394 depends on MXC_UART 395 help 396 Select this to enable a debug UART using the serial_mxc driver. You 397 will need to provide parameters to make this work. The driver will 398 be available until the real driver model serial is running. 399 400config DEBUG_UART_SANDBOX 401 bool "sandbox" 402 depends on SANDBOX_SERIAL 403 help 404 Select this to enable the debug UART using the sandbox driver. This 405 provides basic serial output from the console without needing to 406 start up driver model. The driver will be available until the real 407 driver model serial is running. 408 409config DEBUG_UART_SEMIHOSTING 410 bool "semihosting" 411 depends on SEMIHOSTING_SERIAL 412 help 413 Select this to enable the debug UART using the semihosting driver. 414 This provides basic serial output from the console without needing to 415 start up driver model. The driver will be available until the real 416 driver model serial is running. 417 418config DEBUG_UART_SCIF 419 bool "Renesas SCIF UART" 420 depends on SH || ARCH_RMOBILE 421 help 422 Select this to enable a debug UART using the serial_sh driver. You 423 will need to provide parameters to make this work. The driver will 424 be available until the real driver-model serial is running. 425 426config DEBUG_UART_SIFIVE 427 bool "SiFive UART" 428 depends on SIFIVE_SERIAL 429 help 430 Select this to enable a debug UART using the serial_sifive driver. You 431 will need to provide parameters to make this work. The driver will 432 be available until the real driver-model serial is running. 433 434config DEBUG_UART_STM32 435 bool "STMicroelectronics STM32" 436 depends on STM32_SERIAL 437 help 438 Select this to enable a debug UART using the serial_stm32 driver 439 You will need to provide parameters to make this work. 440 The driver will be available until the real driver model 441 serial is running. 442 443config DEBUG_UART_UNIPHIER 444 bool "UniPhier on-chip UART" 445 depends on ARCH_UNIPHIER 446 help 447 Select this to enable a debug UART using the UniPhier on-chip UART. 448 You will need to provide DEBUG_UART_BASE to make this work. The 449 driver will be available until the real driver-model serial is 450 running. 451 452config DEBUG_UART_OMAP 453 bool "OMAP uart" 454 depends on OMAP_SERIAL 455 help 456 Select this to enable a debug UART using the omap ns16550 driver. 457 You will need to provide parameters to make this work. The driver 458 will be available until the real driver model serial is running. 459 460config DEBUG_UART_MTK 461 bool "MediaTek High-speed UART" 462 depends on MTK_SERIAL 463 help 464 Select this to enable a debug UART using the MediaTek High-speed 465 UART driver. 466 You will need to provide parameters to make this work. The 467 driver will be available until the real driver model serial is 468 running. 469 470config DEBUG_UART_MT7620 471 bool "UART driver for MediaTek MT7620 and earlier SoCs" 472 depends on MT7620_SERIAL 473 help 474 Select this to enable a debug UART using the UART driver for 475 MediaTek MT7620 and earlier SoCs. 476 You will need to provide parameters to make this work. The 477 driver will be available until the real driver model serial is 478 running. 479 480endchoice 481 482config DEBUG_UART_BASE 483 hex "Base address of UART" 484 depends on DEBUG_UART 485 default 0 if DEBUG_SBI_CONSOLE 486 default 0 if DEBUG_UART_SANDBOX 487 default 0xff000000 if DEBUG_UART_ZYNQ && ARCH_ZYNQMP 488 default 0xe0000000 if DEBUG_UART_ZYNQ && ARCH_ZYNQ 489 help 490 This is the base address of your UART for memory-mapped UARTs. 491 492 A default should be provided by your board, but if not you will need 493 to use the correct value here. 494 495config SPL_DEBUG_UART_BASE 496 hex "Base address of UART for SPL" 497 depends on SPL && DEBUG_UART 498 default DEBUG_UART_BASE 499 help 500 This is the base address of your UART for memory-mapped UARTs for SPL. 501 502config TPL_DEBUG_UART_BASE 503 hex "Base address of UART for TPL" 504 depends on TPL && DEBUG_UART 505 default DEBUG_UART_BASE 506 help 507 This is the base address of your UART for memory-mapped UARTs for TPL. 508 509config DEBUG_UART_CLOCK 510 int "UART input clock" 511 depends on DEBUG_UART 512 default 0 if DEBUG_SBI_CONSOLE 513 default 0 if DEBUG_UART_SANDBOX 514 default 0 if DEBUG_MVEBU_A3700_UART 515 default 100000000 if DEBUG_UART_ZYNQ && ARCH_ZYNQMP 516 default 50000000 if DEBUG_UART_ZYNQ && ARCH_ZYNQ 517 help 518 The UART input clock determines the speed of the internal UART 519 circuitry. The baud rate is derived from this by dividing the input 520 clock down. 521 522 A default should be provided by your board, but if not you will need 523 to use the correct value here. 524 525config DEBUG_UART_SHIFT 526 int "UART register shift" 527 depends on DEBUG_UART 528 default 0 if DEBUG_UART 529 help 530 Some UARTs (notably ns16550) support different register layouts 531 where the registers are spaced either as bytes, words or some other 532 value. Use this value to specify the shift to use, where 0=byte 533 registers, 2=32-bit word registers, etc. 534 535config DEBUG_UART_BOARD_INIT 536 bool "Enable board-specific debug UART init" 537 depends on DEBUG_UART 538 help 539 Some boards need to set things up before the debug UART can be used. 540 On these boards a call to debug_uart_init() is insufficient. When 541 this option is enabled, the function board_debug_uart_init() will 542 be called when debug_uart_init() is called. You can put any code 543 here that is needed to set up the UART ready for use, such as set 544 pin multiplexing or enable clocks. 545 546config DEBUG_UART_ANNOUNCE 547 bool "Show a message when the debug UART starts up" 548 depends on DEBUG_UART 549 help 550 Enable this option to show a message when the debug UART is ready 551 for use. You will see a message like "<debug_uart> " as soon as 552 U-Boot has the UART ready for use (i.e. your code calls 553 debug_uart_init()). This can be useful just as a check that 554 everything is working. 555 556config DEBUG_UART_SKIP_INIT 557 bool "Skip UART initialization" 558 depends on DEBUG_UART 559 help 560 Select this if the UART you want to use for debug output is already 561 initialized by the time U-Boot starts its execution. 562 563config DEBUG_UART_NS16550_CHECK_ENABLED 564 bool "Check if UART is enabled on output" 565 depends on DEBUG_UART 566 depends on DEBUG_UART_NS16550 567 help 568 Select this if puts()/putc() might be called before the debug UART 569 has been initialized. If this is disabled, putc() might sit in a 570 tight loop if it is called before debug_uart_init() has been called. 571 572 Note that this does not work for every ns16550-compatible UART and 573 so has to be enabled carefully or you might notice lost characters. 574 575config ALTERA_JTAG_UART 576 bool "Altera JTAG UART support" 577 depends on DM_SERIAL 578 help 579 Select this to enable an JTAG UART for Altera devices.The JTAG UART 580 core implements a method to communicate serial character streams 581 between a host PC and a Qsys system on an Altera FPGA. Please find 582 details on the "Embedded Peripherals IP User Guide" of Altera. 583 584config ALTERA_JTAG_UART_BYPASS 585 bool "Bypass output when no connection" 586 depends on ALTERA_JTAG_UART 587 help 588 Bypass console output and keep going even if there is no JTAG 589 terminal connection with the host. The console output will resume 590 once the JTAG terminal is connected. Without the bypass, the console 591 output will wait forever until a JTAG terminal is connected. If you 592 not are sure, say Y. 593 594config ALTERA_UART 595 bool "Altera UART support" 596 depends on DM_SERIAL 597 help 598 Select this to enable an UART for Altera devices. Please find 599 details on the "Embedded Peripherals IP User Guide" of Altera. 600 601config AR933X_UART 602 bool "QCA/Atheros ar933x UART support" 603 depends on DM_SERIAL && SOC_AR933X 604 help 605 Select this to enable UART support for QCA/Atheros ar933x 606 devices. This driver uses driver model and requires a device 607 tree binding to operate, please refer to the document at 608 doc/device-tree-bindings/serial/qca,ar9330-uart.txt. 609 610config ARC_SERIAL 611 bool "ARC UART support" 612 depends on DM_SERIAL 613 help 614 Select this to enable support for ARC UART now typically 615 only used in Synopsys DesignWare ARC simulators like nSIM. 616 617config ARM_DCC 618 bool "ARM Debug Communication Channel (DCC) as UART support" 619 depends on ARM 620 help 621 Select this to enable using the ARM DCC as a form of UART. 622 623config ATMEL_USART 624 bool "Atmel USART support" 625 help 626 Select this to enable USART support for Atmel SoCs. It can be 627 configured in the device tree, and input clock frequency can 628 be got from the clk node. 629 630config SPL_UART_CLOCK 631 int "SPL fixed UART input clock" 632 depends on ATMEL_USART && SPL && !SPL_CLK 633 default 132096000 if ARCH_AT91 634 help 635 Provide a fixed clock value as input to the UART controller. This 636 might be needed on platforms which can't enable CONFIG_SPL_CLK 637 because of SPL image size restrictions. 638 639config BCM283X_MU_SERIAL 640 bool "Support for BCM283x Mini-UART" 641 depends on DM_SERIAL && ARCH_BCM283X 642 default y 643 help 644 Select this to enable Mini-UART support on BCM283X family of SoCs. 645 646config BCM283X_PL011_SERIAL 647 bool "Support for BCM283x PL011 UART" 648 depends on PL01X_SERIAL && ARCH_BCM283X 649 default y 650 help 651 Select this to enable an overriding PL011 driver for BCM283X SoCs 652 that supports automatic disable, so that it only gets used when 653 the UART is actually muxed. 654 655config BCM6345_SERIAL 656 bool "Support for BCM6345 UART" 657 depends on DM_SERIAL 658 help 659 Select this to enable UART on BCM6345 SoCs. 660 661config COREBOOT_SERIAL 662 bool "Coreboot UART support" 663 depends on DM_SERIAL 664 default y if SYS_COREBOOT 665 select SYS_NS16550 666 help 667 Select this to enable a ns16550-style UART where the platform data 668 comes from the coreboot 'sysinfo' tables. This allows U-Boot to have 669 a serial console on any platform without needing to change the 670 device tree, etc. 671 672config COREBOOT_SERIAL_FROM_DBG2 673 bool "Obtain UART from ACPI tables" 674 depends on COREBOOT_SERIAL 675 default y if !SPL 676 help 677 Select this to try to find a DBG2 record in the ACPI tables, in the 678 event that coreboot does not provide information about the UART in the 679 normal sysinfo tables. This provides a useful fallback when serial 680 is not enabled in coreboot. 681 682config CORTINA_UART 683 bool "Cortina UART support" 684 depends on DM_SERIAL 685 help 686 Select this to enable UART support for Cortina-Access UART devices 687 found on CAxxxx SoCs. 688 689config FSL_LINFLEXUART 690 bool "Freescale Linflex UART support" 691 depends on DM_SERIAL 692 help 693 Select this to enable the Linflex serial module found on some 694 NXP SoCs like S32V234. 695 696config FSL_LPUART 697 bool "Freescale LPUART support" 698 help 699 Select this to enable a Low Power UART for Freescale VF610 and 700 QorIQ Layerscape devices. 701 702config LPUART 703 bool "Use the LPUART as console" 704 depends on FSL_LPUART 705 706config MVEBU_A3700_UART 707 bool "UART support for Armada 3700" 708 help 709 Choose this option to add support for UART driver on the Marvell 710 Armada 3700 SoC. The base address is configured via DT. 711 712config MCFUART 713 bool "Freescale ColdFire UART support" 714 help 715 Choose this option to add support for UART driver on the ColdFire 716 SoC's family. The serial communication channel provides a full-duplex 717 asynchronous/synchronous receiver and transmitter deriving an 718 operating frequency from the internal bus clock or an external clock. 719 720config MXC_UART 721 bool "IMX serial port support" 722 depends on ARCH_MX31 || MX5 || MX6 || MX7 || IMX8M 723 help 724 If you have a machine based on a Motorola IMX CPU you 725 can enable its onboard serial port by enabling this option. 726 727config NULLDEV_SERIAL 728 bool "Null serial device" 729 help 730 Select this to enable null serial device support. A null serial 731 device merely acts as a placeholder for a serial device and does 732 nothing for all it's operation. 733 734config PIC32_SERIAL 735 bool "Support for Microchip PIC32 on-chip UART" 736 depends on DM_SERIAL && MACH_PIC32 737 default y 738 help 739 Support for the UART found on Microchip PIC32 SoC's. 740 741config SYS_NS16550_SERIAL 742 bool "NS16550 UART or compatible legacy driver" 743 depends on !DM_SERIAL 744 select SYS_NS16550 745 746config SPL_SYS_NS16550_SERIAL 747 bool "NS16550 UART or compatible legacy driver in SPL" 748 depends on SPL && !SPL_DM_SERIAL 749 default y if SYS_NS16550_SERIAL || ARCH_SUNXI || ARCH_OMAP2PLUS 750 select SYS_NS16550 751 752config SYS_NS16550 753 bool "NS16550 UART or compatible" 754 help 755 Support NS16550 UART or compatible. This can be enabled in the 756 device tree with the correct input clock frequency. If the input 757 clock frequency is not defined in the device tree, the macro 758 CFG_SYS_NS16550_CLK defined in a legacy board header file will 759 be used. It can be a constant or a function to get clock, eg, 760 get_serial_clock(). 761 762config NS16550_DYNAMIC 763 bool "Allow NS16550 to be configured at runtime" 764 depends on SYS_NS16550 765 default y if SYS_COREBOOT || SYS_SLIMBOOTLOADER 766 help 767 Enable this option to allow device-tree control of the driver. 768 769 Normally this driver is controlled by the following options: 770 771 It is not a good practice for a driver to be statically configured, 772 since it prevents the same driver being used for different types of 773 UARTs in a system. This option avoids this problem at the cost of a 774 slightly increased code size. 775 776config SYS_NS16550_MEM32 777 bool "If memory-mapped, 32bit access is needed for ns16550 register access" 778 depends on SYS_NS16550 779 help 780 If enabled, if memory-mapped, indicates that 32-bit access should be 781 used (instead of 8-bit) for register access. 782 783config SYS_NS16550_PORT_MAPPED 784 bool "Port I/O is used for ns16550 register access" 785 depends on SYS_NS16550 786 help 787 If enabled, port I/O is used for ns16550 register access. If not 788 enabled, then the UART is memory-mapped. 789 790config SYS_NS16550_REG_SIZE 791 int "ns16550 register width and endianness" 792 depends on SYS_NS16550_SERIAL || SPL_SYS_NS16550_SERIAL 793 range -4 4 794 default -4 if ARCH_OMAP2PLUS || ARCH_SUNXI 795 default 1 796 help 797 Indicates register width and also endianness. If positive, big-endian 798 access is used. If negative, little-endian is used. 799 800config SPL_NS16550_MIN_FUNCTIONS 801 bool "Only provide NS16550_init and NS16550_putc in SPL" 802 depends on SPL_SYS_NS16550_SERIAL && PPC 803 help 804 Enable this if you desire to only have use of the NS16550_init and 805 NS16550_putc functions for the serial driver located at 806 drivers/serial/ns16550.c. This option is useful for saving space for 807 already greatly restricted images, including but not limited to 808 NAND_SPL configurations. 809 810config INTEL_MID_SERIAL 811 bool "Intel MID platform UART support" 812 depends on DM_SERIAL && OF_CONTROL 813 depends on INTEL_MID 814 select SYS_NS16550 815 help 816 Select this to enable a UART for Intel MID platforms. 817 This uses the ns16550 driver as a library. 818 819config PL011_SERIAL 820 bool "ARM PL011 driver" 821 depends on !DM_SERIAL 822 help 823 Select this to enable a UART for platforms using PL011. 824 825config PL01X_SERIAL 826 bool "ARM PL010 and PL011 driver" 827 depends on DM_SERIAL 828 help 829 Select this to enable a UART for platforms using PL010 or PL011. 830 831config ROCKCHIP_SERIAL 832 bool "Rockchip on-chip UART support" 833 depends on DM_SERIAL 834 select SYS_NS16550 835 help 836 Select this to enable a debug UART for Rockchip devices when using 837 OF_PLATDATA (i.e. a compiled-in device tree replacemenmt). 838 This uses the ns16550 driver, converting the platdata from of-platdata 839 to the ns16550 format. 840 841config S5P_SERIAL 842 bool "Support for Samsung S5P UART" 843 depends on ARCH_APPLE || ARCH_EXYNOS || ARCH_S5PC1XX 844 default y 845 help 846 Select this to enable Samsung S5P UART support. 847 848config S5P4418_PL011_SERIAL 849 bool "Extended PL011 driver for S5P4418" 850 depends on DM_SERIAL && PL01X_SERIAL && ARCH_NEXELL 851 default y 852 help 853 Select this to enable support of the PL011 UARTs in the S5P4418 SOC. 854 With this driver the UART-clocks are set to the appropriate rate 855 (if not 'skip-init'). 856 857config SANDBOX_SERIAL 858 bool "Sandbox UART support" 859 depends on SANDBOX 860 imply SERIAL_PUTS 861 help 862 Select this to enable a seral UART for sandbox. This is required to 863 operate correctly, otherwise you will see no serial output from 864 sandbox. The emulated UART will display to the console and console 865 input will be fed into the UART. This allows you to interact with 866 U-Boot. 867 868 The operation of the console is controlled by the -t command-line 869 flag. In raw mode, U-Boot sees all characters from the terminal 870 before they are processed, including Ctrl-C. In cooked mode, Ctrl-C 871 is processed by the terminal, and terminates U-Boot. Valid options 872 are: 873 874 -t raw-with-sigs Raw mode, Ctrl-C will terminate U-Boot 875 -t raw Raw mode, Ctrl-C is processed by U-Boot 876 -t cooked Cooked mode, Ctrl-C terminates 877 878config SCIF_CONSOLE 879 bool "Renesas SCIF UART support" 880 depends on SH || ARCH_RMOBILE 881 help 882 Select this to enable Renesas SCIF UART. To operate serial ports 883 on systems with RCar or SH SoCs, say Y to this option. If unsure, 884 say N. 885 886choice 887 prompt "SCIF console port" 888 depends on SCIF_CONSOLE && (!DM_SERIAL || (SPL && !SPL_DM_SERIAL)) 889 890config CONS_SCIF0 891 bool "SCIF0" 892 893config CONS_SCIF1 894 bool "SCIF1" 895 896config CONS_SCIF2 897 bool "SCIF2" 898 899config CONS_SCIF4 900 bool "SCIF4" 901 902config CONS_SCIFA0 903 bool "SCIFA0" 904 905endchoice 906 907config SH_SCIF_CLK_FREQ 908 int "SCIF console clock frequency" 909 depends on SCIF_CONSOLE && (!DM_SERIAL || (SPL && !SPL_DM_SERIAL)) 910 default 65000000 911 912config SEMIHOSTING_SERIAL 913 bool "Semihosting UART support" 914 depends on SEMIHOSTING && !SERIAL_RX_BUFFER 915 imply SERIAL_PUTS 916 help 917 Select this to enable a serial UART using semihosting. Special halt 918 instructions will be issued which an external debugger (such as a 919 JTAG emulator) may interpret. The debugger will display U-Boot's 920 console output on the host system. 921 922 Enable this option only if you are using a debugger which supports 923 semihosting. If you are not using a debugger, this driver will halt 924 the boot. 925 926config UNIPHIER_SERIAL 927 bool "Support for UniPhier on-chip UART" 928 depends on ARCH_UNIPHIER 929 default y 930 help 931 If you have a UniPhier based board and want to use the on-chip 932 serial ports, say Y to this option. If unsure, say N. 933 934config XILINX_UARTLITE 935 bool "Xilinx Uarlite support" 936 depends on DM_SERIAL 937 help 938 If you have a Xilinx based board and want to use the uartlite 939 serial ports, say Y to this option. If unsure, say N. 940 941config MESON_SERIAL 942 bool "Support for Amlogic Meson UART" 943 depends on DM_SERIAL && ARCH_MESON 944 help 945 If you have an Amlogic Meson based board and want to use the on-chip 946 serial ports, say Y to this option. If unsure, say N. 947 948config MSM_SERIAL 949 bool "Qualcomm on-chip UART" 950 depends on DM_SERIAL 951 help 952 Support Data Mover UART used on Qualcomm Snapdragon SoCs. 953 It should support all Qualcomm devices with UARTDM version 1.4, 954 for example APQ8016 and MSM8916. 955 Single baudrate is supported in current implementation (115200). 956 957config MSM_GENI_SERIAL 958 bool "Qualcomm on-chip GENI UART" 959 select MISC 960 imply QCOM_GENI_SE 961 help 962 Support UART based on Generic Interface (GENI) Serial Engine (SE), 963 used on Qualcomm Snapdragon SoCs. Should support all qualcomm SOCs 964 with Qualcomm Universal Peripheral (QUP) Wrapper cores, 965 i.e. newer ones, starting from SDM845. 966 Driver works in FIFO mode. 967 Multiple baudrates supported. 968 969config MXS_AUART_SERIAL 970 bool "MXS AUART" 971 depends on DM_SERIAL 972 help 973 Support for Freescale i.MX23 / i.MX28 AUART or Application UART IP. 974 This IP is present in the aforementioned SoCs, however this is not 975 the IP used to drive the Debug UART port, for that see PL01X_SERIAL . 976 977config OCTEON_SERIAL_BOOTCMD 978 bool "MIPS Octeon PCI remote bootcmd input" 979 depends on ARCH_OCTEON 980 depends on DM_SERIAL 981 select SYS_IS_IN_ENV 982 select CONSOLE_MUX 983 help 984 This driver supports remote input over the PCIe bus from a host 985 to U-Boot for entering commands. It is utilized by the host 986 commands 'oct-remote-load' and 'oct-remote-bootcmd'. 987 988config OCTEON_SERIAL_PCIE_CONSOLE 989 bool "MIPS Octeon PCIe remote console" 990 depends on ARCH_OCTEON 991 depends on (DM_SERIAL && DM_STDIO) 992 select SYS_STDIO_DEREGISTER 993 select SYS_CONSOLE_IS_IN_ENV 994 select CONSOLE_MUX 995 help 996 This driver supports remote console over the PCIe bus when the 997 Octeon is running in PCIe target mode. The host program 998 'oct-remote-console' can be used to connect to this console. 999 The console number will likely be 0 or 1. 1000 1001config OMAP_SERIAL 1002 bool "Support for OMAP specific UART" 1003 depends on DM_SERIAL 1004 default y if (ARCH_OMAP2PLUS || ARCH_K3) 1005 select SYS_NS16550 1006 help 1007 If you have an TI based SoC and want to use the on-chip serial 1008 port, say Y to this option. If unsure say N. 1009 1010config OWL_SERIAL 1011 bool "Actions Semi OWL UART" 1012 depends on DM_SERIAL && ARCH_OWL 1013 help 1014 If you have a Actions Semi OWL based board and want to use the on-chip 1015 serial port, say Y to this option. If unsure, say N. 1016 Single baudrate is supported in current implementation (115200). 1017 1018config HTIF_CONSOLE 1019 bool "RISC-V HTIF console support" 1020 depends on DM_SERIAL && 64BIT 1021 help 1022 Select this to enable host transfer interface (HTIF) based serial 1023 console. The HTIF device is quite common in RISC-V emulators and 1024 RISC-V ISS so this driver allows using U-Boot on such platforms. 1025 1026config SIFIVE_SERIAL 1027 bool "SiFive UART support" 1028 depends on DM_SERIAL 1029 help 1030 This driver supports the SiFive UART. If unsure say N. 1031 1032config STI_ASC_SERIAL 1033 bool "STMicroelectronics on-chip UART" 1034 depends on DM_SERIAL && ARCH_STI 1035 help 1036 Select this to enable Asynchronous Serial Controller available 1037 on STiH410 SoC. This is a basic implementation, it supports 1038 following baudrate 9600, 19200, 38400, 57600 and 115200. 1039 1040config STM32_SERIAL 1041 bool "STMicroelectronics STM32 SoCs on-chip UART" 1042 depends on DM_SERIAL && (STM32F4 || STM32F7 || STM32H7 || ARCH_STM32MP) 1043 help 1044 If you have a machine based on a STM32 F4, F7, H7 or MP1 SOC 1045 you can enable its onboard serial ports, say Y to this option. 1046 If unsure, say N. 1047 1048config ZYNQ_SERIAL 1049 bool "Cadence (Xilinx Zynq) UART support" 1050 depends on DM_SERIAL 1051 help 1052 This driver supports the Cadence UART. It is found e.g. in Xilinx 1053 Zynq/ZynqMP. 1054 1055config MTK_SERIAL 1056 bool "MediaTek High-speed UART support" 1057 depends on DM_SERIAL 1058 help 1059 Select this to enable UART support for MediaTek High-speed UART 1060 devices. This driver uses driver model and requires a device 1061 tree binding to operate. 1062 The High-speed UART is compatible with the ns16550a UART and have 1063 its own high-speed registers. 1064 1065config MT7620_SERIAL 1066 bool "UART driver for MediaTek MT7620 and earlier SoCs" 1067 depends on DM_SERIAL 1068 help 1069 Select this to enable UART support for MediaTek MT7620 and earlier 1070 SoCs. This driver uses driver model and requires a device tree 1071 binding to operate. 1072 The UART driver for MediaTek MT7620 and earlier SoCs is *NOT* 1073 compatible with the ns16550a UART. 1074 1075config MPC8XX_CONS 1076 bool "Console driver for MPC8XX" 1077 depends on MPC8xx 1078 default y 1079 1080config NPCM_SERIAL 1081 bool "Nuvoton NPCM UART driver" 1082 depends on DM_SERIAL 1083 help 1084 Select this to enable UART support for Nuvoton BMCs 1085 (NPCM7xx and NPCM8xx). 1086 The driver enables the onboard serial port with 8-N-1 1087 configuration. 1088 1089config XEN_SERIAL 1090 bool "XEN serial support" 1091 depends on XEN 1092 help 1093 If built without DM support, then requires Xen 1094 to be built with CONFIG_VERBOSE_DEBUG. 1095 1096choice 1097 prompt "Console port" 1098 default 8xx_CONS_SMC1 1099 depends on MPC8XX_CONS 1100 help 1101 Depending on board, select one serial port 1102 (CONFIG_8xx_CONS_SMC1 or CONFIG_8xx_CONS_SMC2) 1103 1104config 8xx_CONS_SMC1 1105 bool "SMC1" 1106 1107config 8xx_CONS_SMC2 1108 bool "SMC2" 1109 1110endchoice 1111 1112config SYS_SMC_RXBUFLEN 1113 int "Console Rx buffer length" 1114 depends on MPC8XX_CONS 1115 default 1 1116 help 1117 With CONFIG_SYS_SMC_RXBUFLEN it is possible to define 1118 the maximum receive buffer length for the SMC. 1119 This option is actual only for 8xx possible. 1120 If using CONFIG_SYS_SMC_RXBUFLEN also CONFIG_SYS_MAXIDLE 1121 must be defined, to setup the maximum idle timeout for 1122 the SMC. 1123 1124config SYS_MAXIDLE 1125 int "maximum idle timeout" 1126 depends on MPC8XX_CONS 1127 default 0 1128 1129config SYS_BRGCLK_PRESCALE 1130 int "BRG Clock Prescale" 1131 depends on MPC8XX_CONS 1132 default 1 1133 1134config SYS_SDSR 1135 hex "SDSR Value" 1136 depends on MPC8XX_CONS 1137 default 0x83 1138 1139config SYS_SDMR 1140 hex "SDMR Value" 1141 depends on MPC8XX_CONS 1142 default 0 1143 1144endif 1145