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 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) 31 help 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 34 in U-Boot. 35 36config SERIAL_PRESENT 37 bool "Provide a serial driver" 38 depends on DM_SERIAL 39 default y 40 help 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. 45 46config SPL_SERIAL_PRESENT 47 bool "Provide a serial driver in SPL" 48 depends on DM_SERIAL 49 default y 50 help 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. 55 56# Logic to allow us to use the imply keyword to set what the default port 57# should be. The default is otherwise 1. 58config CONS_INDEX_0 59 bool 60 61config CONS_INDEX_2 62 bool 63 64config CONS_INDEX_3 65 bool 66 67config CONS_INDEX_4 68 bool 69 70config CONS_INDEX_5 71 bool 72 73config CONS_INDEX_6 74 bool 75 76config CONS_INDEX 77 int "UART used for console" 78 depends on SPECIFY_CONSOLE_INDEX 79 range 0 6 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 86 default 1 87 help 88 Set this to match the UART number of the serial console. 89 90config DM_SERIAL 91 bool "Enable Driver Model for serial drivers" 92 depends on DM 93 help 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. 98 99config SERIAL_RX_BUFFER 100 bool "Enable RX buffer for serial input" 101 depends on DM_SERIAL 102 help 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). 106 107config SERIAL_RX_BUFFER_SIZE 108 int "RX buffer size" 109 depends on SERIAL_RX_BUFFER 110 default 256 111 help 112 The size of the RX buffer (needs to be power of 2) 113 114config SERIAL_SEARCH_ALL 115 bool "Search for serial devices after default one failed" 116 depends on DM_SERIAL 117 help 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. 123 124 If unsure, say N. 125 126config SPL_DM_SERIAL 127 bool "Enable Driver Model for serial drivers in SPL" 128 depends on DM_SERIAL && SPL_DM 129 default y 130 help 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. 135 136config TPL_DM_SERIAL 137 bool "Enable Driver Model for serial drivers in TPL" 138 depends on DM_SERIAL 139 default y if TPL && DM_SERIAL 140 help 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. 145 146config DEBUG_UART 147 bool "Enable an early debug UART for debugging" 148 help 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. 151 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 160 161 Depending on your platform it may be possible to use this UART before 162 a stack is available. 163 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. 167 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. 171 172choice 173 prompt "Select which UART will provide the debug UART" 174 depends on DEBUG_UART 175 default DEBUG_UART_NS16550 176 177config DEBUG_UART_ALTERA_JTAGUART 178 bool "Altera JTAG UART" 179 help 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. 183 184config DEBUG_UART_ALTERA_UART 185 bool "Altera UART" 186 help 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. 190 191config DEBUG_UART_AR933X 192 bool "QCA/Atheros ar933x" 193 depends on AR933X_UART 194 help 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 198 running. 199 200config DEBUG_ARC_SERIAL 201 bool "ARC UART" 202 depends on ARC_SERIAL 203 help 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 207 running. 208 209config DEBUG_UART_ATMEL 210 bool "Atmel USART" 211 help 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. 215 216config DEBUG_UART_BCM6345 217 bool "BCM6345 UART" 218 depends on BCM6345_SERIAL 219 help 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. 223 224config DEBUG_UART_NS16550 225 bool "ns16550" 226 help 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. 230 231config DEBUG_EFI_CONSOLE 232 bool "EFI" 233 depends on EFI_APP 234 help 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. 239 240config DEBUG_UART_S5P 241 bool "Samsung S5P" 242 help 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. 246 247config DEBUG_UART_MESON 248 bool "Amlogic Meson" 249 depends on MESON_SERIAL 250 help 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. 254 255config DEBUG_UART_UARTLITE 256 bool "Xilinx Uartlite" 257 help 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. 261 262config DEBUG_UART_ARM_DCC 263 bool "ARM DCC" 264 help 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 271 architectures. 272 273config DEBUG_MVEBU_A3700_UART 274 bool "Marvell Armada 3700" 275 help 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. 279 280config DEBUG_UART_ZYNQ 281 bool "Xilinx Zynq" 282 help 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. 286 287config DEBUG_UART_APBUART 288 depends on LEON3 289 bool "Gaisler APBUART" 290 help 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. 294 295config DEBUG_UART_PL010 296 bool "pl010" 297 help 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 301 serial is running. 302 303config DEBUG_UART_PL011 304 bool "pl011" 305 help 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 309 serial is running. 310 311config DEBUG_UART_PIC32 312 bool "Microchip PIC32" 313 depends on PIC32_SERIAL 314 help 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. 318 319config DEBUG_UART_MXC 320 bool "IMX Serial port" 321 depends on MXC_UART 322 help 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. 326 327config DEBUG_UART_STM32 328 bool "STMicroelectronics STM32" 329 depends on STM32_SERIAL 330 help 331 Select this to enable a debug UART using the serial_stm32 driver 332 You will need to provide parameters to make this work. 333 The driver will be available until the real driver model 334 serial is running. 335 336config DEBUG_UART_UNIPHIER 337 bool "UniPhier on-chip UART" 338 depends on ARCH_UNIPHIER 339 help 340 Select this to enable a debug UART using the UniPhier on-chip UART. 341 You will need to provide DEBUG_UART_BASE to make this work. The 342 driver will be available until the real driver-model serial is 343 running. 344 345config DEBUG_UART_OMAP 346 bool "OMAP uart" 347 help 348 Select this to enable a debug UART using the omap ns16550 driver. 349 You will need to provide parameters to make this work. The driver 350 will be available until the real driver model serial is running. 351 352endchoice 353 354config DEBUG_UART_BASE 355 hex "Base address of UART" 356 depends on DEBUG_UART 357 help 358 This is the base address of your UART for memory-mapped UARTs. 359 360 A default should be provided by your board, but if not you will need 361 to use the correct value here. 362 363config DEBUG_UART_CLOCK 364 int "UART input clock" 365 depends on DEBUG_UART 366 help 367 The UART input clock determines the speed of the internal UART 368 circuitry. The baud rate is derived from this by dividing the input 369 clock down. 370 371 A default should be provided by your board, but if not you will need 372 to use the correct value here. 373 374config DEBUG_UART_SHIFT 375 int "UART register shift" 376 depends on DEBUG_UART 377 default 0 if DEBUG_UART 378 help 379 Some UARTs (notably ns16550) support different register layouts 380 where the registers are spaced either as bytes, words or some other 381 value. Use this value to specify the shift to use, where 0=byte 382 registers, 2=32-bit word registers, etc. 383 384config DEBUG_UART_BOARD_INIT 385 bool "Enable board-specific debug UART init" 386 depends on DEBUG_UART 387 help 388 Some boards need to set things up before the debug UART can be used. 389 On these boards a call to debug_uart_init() is insufficient. When 390 this option is enabled, the function board_debug_uart_init() will 391 be called when debug_uart_init() is called. You can put any code 392 here that is needed to set up the UART ready for use, such as set 393 pin multiplexing or enable clocks. 394 395config DEBUG_UART_ANNOUNCE 396 bool "Show a message when the debug UART starts up" 397 depends on DEBUG_UART 398 help 399 Enable this option to show a message when the debug UART is ready 400 for use. You will see a message like "<debug_uart> " as soon as 401 U-Boot has the UART ready for use (i.e. your code calls 402 debug_uart_init()). This can be useful just as a check that 403 everything is working. 404 405config DEBUG_UART_SKIP_INIT 406 bool "Skip UART initialization" 407 help 408 Select this if the UART you want to use for debug output is already 409 initialized by the time U-Boot starts its execution. 410 411config ALTERA_JTAG_UART 412 bool "Altera JTAG UART support" 413 depends on DM_SERIAL 414 help 415 Select this to enable an JTAG UART for Altera devices.The JTAG UART 416 core implements a method to communicate serial character streams 417 between a host PC and a Qsys system on an Altera FPGA. Please find 418 details on the "Embedded Peripherals IP User Guide" of Altera. 419 420config ALTERA_JTAG_UART_BYPASS 421 bool "Bypass output when no connection" 422 depends on ALTERA_JTAG_UART 423 help 424 Bypass console output and keep going even if there is no JTAG 425 terminal connection with the host. The console output will resume 426 once the JTAG terminal is connected. Without the bypass, the console 427 output will wait forever until a JTAG terminal is connected. If you 428 not are sure, say Y. 429 430config ALTERA_UART 431 bool "Altera UART support" 432 depends on DM_SERIAL 433 help 434 Select this to enable an UART for Altera devices. Please find 435 details on the "Embedded Peripherals IP User Guide" of Altera. 436 437config AR933X_UART 438 bool "QCA/Atheros ar933x UART support" 439 depends on DM_SERIAL && SOC_AR933X 440 help 441 Select this to enable UART support for QCA/Atheros ar933x 442 devices. This driver uses driver model and requires a device 443 tree binding to operate, please refer to the document at 444 doc/device-tree-bindings/serial/qca,ar9330-uart.txt. 445 446config ARC_SERIAL 447 bool "ARC UART support" 448 depends on DM_SERIAL 449 help 450 Select this to enable support for ARC UART now typically 451 only used in Synopsys DesignWare ARC simulators like nSIM. 452 453config ATMEL_USART 454 bool "Atmel USART support" 455 help 456 Select this to enable USART support for Atmel SoCs. It can be 457 configured in the device tree, and input clock frequency can 458 be got from the clk node. 459 460config BCM283X_MU_SERIAL 461 bool "Support for BCM283x Mini-UART" 462 depends on DM_SERIAL && ARCH_BCM283X 463 default y 464 help 465 Select this to enable Mini-UART support on BCM283X family of SoCs. 466 467config BCM283X_PL011_SERIAL 468 bool "Support for BCM283x PL011 UART" 469 depends on PL01X_SERIAL && ARCH_BCM283X 470 default y 471 help 472 Select this to enable an overriding PL011 driver for BCM283X SoCs 473 that supports automatic disable, so that it only gets used when 474 the UART is actually muxed. 475 476config BCM6345_SERIAL 477 bool "Support for BCM6345 UART" 478 depends on DM_SERIAL && ARCH_BMIPS 479 help 480 Select this to enable UART on BCM6345 SoCs. 481 482config FSL_LINFLEXUART 483 bool "Freescale Linflex UART support" 484 depends on DM_SERIAL 485 help 486 Select this to enable the Linflex serial module found on some 487 NXP SoCs like S32V234. 488 489config FSL_LPUART 490 bool "Freescale LPUART support" 491 help 492 Select this to enable a Low Power UART for Freescale VF610 and 493 QorIQ Layerscape devices. 494 495config MVEBU_A3700_UART 496 bool "UART support for Armada 3700" 497 default n 498 help 499 Choose this option to add support for UART driver on the Marvell 500 Armada 3700 SoC. The base address is configured via DT. 501 502config MXC_UART 503 bool "IMX serial port support" 504 depends on MX5 || MX6 505 help 506 If you have a machine based on a Motorola IMX CPU you 507 can enable its onboard serial port by enabling this option. 508 509config NULLDEV_SERIAL 510 bool "Null serial device" 511 help 512 Select this to enable null serial device support. A null serial 513 device merely acts as a placeholder for a serial device and does 514 nothing for all it's operation. 515 516config PIC32_SERIAL 517 bool "Support for Microchip PIC32 on-chip UART" 518 depends on DM_SERIAL && MACH_PIC32 519 default y 520 help 521 Support for the UART found on Microchip PIC32 SoC's. 522 523config SYS_NS16550 524 bool "NS16550 UART or compatible" 525 help 526 Support NS16550 UART or compatible. This can be enabled in the 527 device tree with the correct input clock frequency. If the input 528 clock frequency is not defined in the device tree, the macro 529 CONFIG_SYS_NS16550_CLK defined in a legacy board header file will 530 be used. It can be a constant or a function to get clock, eg, 531 get_serial_clock(). 532 533config INTEL_MID_SERIAL 534 bool "Intel MID platform UART support" 535 depends on DM_SERIAL && OF_CONTROL 536 depends on INTEL_MID 537 select SYS_NS16550 538 help 539 Select this to enable a UART for Intel MID platforms. 540 This uses the ns16550 driver as a library. 541 542config PL010_SERIAL 543 bool "ARM PL010 driver" 544 depends on !DM_SERIAL 545 help 546 Select this to enable a UART for platforms using PL010. 547 548config PL011_SERIAL 549 bool "ARM PL011 driver" 550 depends on !DM_SERIAL 551 help 552 Select this to enable a UART for platforms using PL011. 553 554config PL01X_SERIAL 555 bool "ARM PL010 and PL011 driver" 556 depends on DM_SERIAL 557 help 558 Select this to enable a UART for platforms using PL010 or PL011. 559 560config ROCKCHIP_SERIAL 561 bool "Rockchip on-chip UART support" 562 depends on DM_SERIAL && SPL_OF_PLATDATA 563 help 564 Select this to enable a debug UART for Rockchip devices when using 565 CONFIG_SPL_OF_PLATDATA (i.e. a compiled-in device tree replacemenmt). 566 This uses the ns16550 driver, converting the platdata from of-platdata 567 to the ns16550 format. 568 569config SANDBOX_SERIAL 570 bool "Sandbox UART support" 571 depends on SANDBOX 572 help 573 Select this to enable a seral UART for sandbox. This is required to 574 operate correctly, otherwise you will see no serial output from 575 sandbox. The emulated UART will display to the console and console 576 input will be fed into the UART. This allows you to interact with 577 U-Boot. 578 579 The operation of the console is controlled by the -t command-line 580 flag. In raw mode, U-Boot sees all characters from the terminal 581 before they are processed, including Ctrl-C. In cooked mode, Ctrl-C 582 is processed by the terminal, and terminates U-Boot. Valid options 583 are: 584 585 -t raw-with-sigs Raw mode, Ctrl-C will terminate U-Boot 586 -t raw Raw mode, Ctrl-C is processed by U-Boot 587 -t cooked Cooked mode, Ctrl-C terminates 588 589config SCIF_CONSOLE 590 bool "Renesas SCIF UART support" 591 depends on SH || ARCH_RMOBILE 592 help 593 Select this to enable Renesas SCIF UART. To operate serial ports 594 on systems with RCar or SH SoCs, say Y to this option. If unsure, 595 say N. 596 597config UNIPHIER_SERIAL 598 bool "Support for UniPhier on-chip UART" 599 depends on ARCH_UNIPHIER 600 default y 601 help 602 If you have a UniPhier based board and want to use the on-chip 603 serial ports, say Y to this option. If unsure, say N. 604 605config XILINX_UARTLITE 606 bool "Xilinx Uarlite support" 607 depends on DM_SERIAL && (MICROBLAZE || ARCH_ZYNQ || ARCH_ZYNQMP || 4xx) 608 help 609 If you have a Xilinx based board and want to use the uartlite 610 serial ports, say Y to this option. If unsure, say N. 611 612config MESON_SERIAL 613 bool "Support for Amlogic Meson UART" 614 depends on DM_SERIAL && ARCH_MESON 615 help 616 If you have an Amlogic Meson based board and want to use the on-chip 617 serial ports, say Y to this option. If unsure, say N. 618 619config MSM_SERIAL 620 bool "Qualcomm on-chip UART" 621 depends on DM_SERIAL 622 help 623 Support Data Mover UART used on Qualcomm Snapdragon SoCs. 624 It should support all Qualcomm devices with UARTDM version 1.4, 625 for example APQ8016 and MSM8916. 626 Single baudrate is supported in current implementation (115200). 627 628config PXA_SERIAL 629 bool "PXA serial port support" 630 help 631 If you have a machine based on a Marvell XScale PXA2xx CPU you 632 can enable its onboard serial ports by enabling this option. 633 634config STI_ASC_SERIAL 635 bool "STMicroelectronics on-chip UART" 636 depends on DM_SERIAL && ARCH_STI 637 help 638 Select this to enable Asynchronous Serial Controller available 639 on STiH410 SoC. This is a basic implementation, it supports 640 following baudrate 9600, 19200, 38400, 57600 and 115200. 641 642config STM32_SERIAL 643 bool "STMicroelectronics STM32 SoCs on-chip UART" 644 depends on DM_SERIAL && (STM32F4 || STM32F7 || STM32H7 || ARCH_STM32MP) 645 help 646 If you have a machine based on a STM32 F4, F7, H7 or MP1 SOC 647 you can enable its onboard serial ports, say Y to this option. 648 If unsure, say N. 649 650config ZYNQ_SERIAL 651 bool "Cadence (Xilinx Zynq) UART support" 652 depends on DM_SERIAL && (MICROBLAZE || ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_ZYNQMP_R5) 653 help 654 This driver supports the Cadence UART. It is found e.g. in Xilinx 655 Zynq/ZynqMP. 656 657config MPC8XX_CONS 658 bool "Console driver for MPC8XX" 659 depends on MPC8xx 660 default y 661 662choice 663 prompt "Console port" 664 default 8xx_CONS_SMC1 665 depends on MPC8XX_CONS 666 help 667 Depending on board, select one serial port 668 (CONFIG_8xx_CONS_SMC1 or CONFIG_8xx_CONS_SMC2) 669 670config 8xx_CONS_SMC1 671 bool "SMC1" 672 673config 8xx_CONS_SMC2 674 bool "SMC2" 675 676endchoice 677 678config SYS_SMC_RXBUFLEN 679 int "Console Rx buffer length" 680 depends on MPC8XX_CONS 681 default 1 682 help 683 With CONFIG_SYS_SMC_RXBUFLEN it is possible to define 684 the maximum receive buffer length for the SMC. 685 This option is actual only for 8xx possible. 686 If using CONFIG_SYS_SMC_RXBUFLEN also CONFIG_SYS_MAXIDLE 687 must be defined, to setup the maximum idle timeout for 688 the SMC. 689 690config SYS_MAXIDLE 691 int "maximum idle timeout" 692 depends on MPC8XX_CONS 693 default 0 694 695config SYS_BRGCLK_PRESCALE 696 int "BRG Clock Prescale" 697 depends on MPC8XX_CONS 698 default 1 699 700config SYS_SDSR 701 hex "SDSR Value" 702 depends on MPC8XX_CONS 703 default 0x83 704 705config SYS_SDMR 706 hex "SDMR Value" 707 depends on MPC8XX_CONS 708 default 0 709 710endmenu 711