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 && SPL
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
56config TPL_SERIAL_PRESENT
57	bool "Provide a serial driver in TPL"
58	depends on DM_SERIAL && TPL
59	default y
60	help
61	  In very space-constrained devices even the full UART driver is too
62	  large. In this case the debug UART can still be used in some cases.
63	  This option enables the full UART in TPL, so if is it disabled,
64	  the full UART driver will be omitted, thus saving space.
65
66# Logic to allow us to use the imply keyword to set what the default port
67# should be.  The default is otherwise 1.
68config CONS_INDEX_0
69	bool
70
71config CONS_INDEX_2
72	bool
73
74config CONS_INDEX_3
75	bool
76
77config CONS_INDEX_4
78	bool
79
80config CONS_INDEX_5
81	bool
82
83config CONS_INDEX_6
84	bool
85
86config CONS_INDEX
87	int "UART used for console"
88	depends on SPECIFY_CONSOLE_INDEX
89	range 0 6
90	default 0 if CONS_INDEX_0
91	default 2 if CONS_INDEX_2
92	default 3 if CONS_INDEX_3
93	default 4 if CONS_INDEX_4
94	default 5 if CONS_INDEX_5
95	default 6 if CONS_INDEX_6
96	default 1
97	help
98	  Set this to match the UART number of the serial console.
99
100config DM_SERIAL
101	bool "Enable Driver Model for serial drivers"
102	depends on DM
103	select SYS_MALLOC_F
104	help
105	  Enable driver model for serial. This replaces
106	  drivers/serial/serial.c with the serial uclass, which
107	  implements serial_putc() etc. The uclass interface is
108	  defined in include/serial.h.
109
110config SERIAL_RX_BUFFER
111	bool "Enable RX buffer for serial input"
112	depends on DM_SERIAL
113	help
114	  Enable RX buffer support for the serial driver. This enables
115	  pasting longer strings, even when the RX FIFO of the UART is
116	  not big enough (e.g. 16 bytes on the normal NS16550).
117
118config SERIAL_RX_BUFFER_SIZE
119	int "RX buffer size"
120	depends on SERIAL_RX_BUFFER
121	default 256
122	help
123	  The size of the RX buffer (needs to be power of 2)
124
125config SERIAL_SEARCH_ALL
126	bool "Search for serial devices after default one failed"
127	depends on DM_SERIAL
128	help
129	  The serial subsystem only searches for a single serial device
130	  that was instantiated, but does not check whether it was probed
131	  correctly. With this option set, we make successful probing
132	  mandatory and search for fallback serial devices if the default
133	  device does not work.
134
135	  If unsure, say N.
136
137config SERIAL_PROBE_ALL
138	bool "Probe all available serial devices"
139	depends on DM_SERIAL
140	default n
141	help
142	  The serial subsystem only probes for a single serial device,
143	  but does not probe for other remaining serial devices.
144	  With this option set, we make probing and searching for
145	  all available devices optional.
146	  Normally, U-Boot talks to one serial port at a time, but SBSA
147	  compliant UART devices like PL011 require initialization
148	  by firmware and to let the kernel use serial port for sending
149	  and receiving the characters.
150
151	  If unsure, say N.
152
153config SPL_DM_SERIAL
154	bool "Enable Driver Model for serial drivers in SPL"
155	depends on DM_SERIAL && SPL_DM
156	select SYS_SPL_MALLOC_F
157	default y
158	help
159	  Enable driver model for serial in SPL. This replaces
160	  drivers/serial/serial.c with the serial uclass, which
161	  implements serial_putc() etc. The uclass interface is
162	  defined in include/serial.h.
163
164config TPL_DM_SERIAL
165	bool "Enable Driver Model for serial drivers in TPL"
166	depends on DM_SERIAL && TPL_DM
167	select SYS_TPL_MALLOC_F
168	default y if TPL && DM_SERIAL
169	help
170	  Enable driver model for serial in TPL. This replaces
171	  drivers/serial/serial.c with the serial uclass, which
172	  implements serial_putc() etc. The uclass interface is
173	  defined in include/serial.h.
174
175config DEBUG_UART
176	bool "Enable an early debug UART for debugging"
177	help
178	  The debug UART is intended for use very early in U-Boot to debug
179	  problems when an ICE or other debug mechanism is not available.
180
181	  To use it you should:
182	  - Make sure your UART supports this interface
183	  - Enable CONFIG_DEBUG_UART
184	  - Enable the CONFIG for your UART to tell it to provide this interface
185	        (e.g. CONFIG_DEBUG_UART_NS16550)
186	  - Define the required settings as needed (see below)
187	  - Call debug_uart_init() before use
188	  - Call debug_uart_putc() to output a character
189
190	  Depending on your platform it may be possible to use this UART before
191	  a stack is available.
192
193	  If your UART does not support this interface you can probably add
194	  support quite easily. Remember that you cannot use driver model and
195	  it is preferred to use no stack.
196
197	  You must not use this UART once driver model is working and the
198	  serial drivers are up and running (done in serial_init()). Otherwise
199	  the drivers may conflict and you will get strange output.
200
201choice
202	prompt "Select which UART will provide the debug UART"
203	depends on DEBUG_UART
204	default DEBUG_UART_NS16550
205
206config DEBUG_UART_ALTERA_JTAGUART
207	bool "Altera JTAG UART"
208	depends on ALTERA_JTAG_UART
209	help
210	  Select this to enable a debug UART using the altera_jtag_uart driver.
211	  You will need to provide parameters to make this work. The driver will
212	  be available until the real driver model serial is running.
213
214config DEBUG_UART_ALTERA_UART
215	bool "Altera UART"
216	depends on ALTERA_UART
217	help
218	  Select this to enable a debug UART using the altera_uart driver.
219	  You will need to provide parameters to make this work. The driver will
220	  be available until the real driver model serial is running.
221
222config DEBUG_UART_AR933X
223	bool "QCA/Atheros ar933x"
224	depends on AR933X_UART
225	help
226	  Select this to enable a debug UART using the ar933x uart driver.
227	  You will need to provide parameters to make this work. The
228	  driver will be available until the real driver model serial is
229	  running.
230
231config DEBUG_ARC_SERIAL
232	bool "ARC UART"
233	depends on ARC_SERIAL
234	help
235	  Select this to enable a debug UART using the ARC UART driver.
236	  You will need to provide parameters to make this work. The
237	  driver will be available until the real driver model serial is
238	  running.
239
240config DEBUG_UART_ATMEL
241	bool "Atmel USART"
242	depends on ATMEL_USART
243	help
244	  Select this to enable a debug UART using the atmel usart driver. You
245	  will need to provide parameters to make this work. The driver will
246	  be available until the real driver-model serial is running.
247
248config DEBUG_UART_BCM6345
249	bool "BCM6345 UART"
250	depends on BCM6345_SERIAL
251	help
252	  Select this to enable a debug UART on BCM6345 SoCs. You
253	  will need to provide parameters to make this work. The driver will
254	  be available until the real driver model serial is running.
255
256config DEBUG_UART_NS16550
257	bool "ns16550"
258	depends on SYS_NS16550
259	help
260	  Select this to enable a debug UART using the ns16550 driver. You
261	  will need to provide parameters to make this work. The driver will
262	  be available until the real driver model serial is running.
263
264config DEBUG_EFI_CONSOLE
265	bool "EFI"
266	depends on EFI_APP
267	help
268	  Select this to enable a debug console which calls back to EFI to
269	  output to the console. This can be useful for early debugging of
270	  U-Boot when running on top of EFI (Extensive Firmware Interface).
271	  This is a type of BIOS used by PCs.
272
273config DEBUG_UART_S5P
274	bool "Samsung S5P"
275	depends on ARCH_EXYNOS || ARCH_S5PC1XX
276	help
277	  Select this to enable a debug UART using the serial_s5p 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_UART_MESON
282	bool "Amlogic Meson"
283	depends on MESON_SERIAL
284	help
285	  Select this to enable a debug UART using the serial_meson driver. You
286	  will need to provide parameters to make this work. The driver will
287	  be available until the real driver-model serial is running.
288
289config DEBUG_UART_UARTLITE
290	bool "Xilinx Uartlite"
291	depends on XILINX_UARTLITE
292	help
293	  Select this to enable a debug UART using the serial_uartlite driver.
294	  You will need to provide parameters to make this work. The driver will
295	  be available until the real driver-model serial is running.
296
297config DEBUG_UART_ARM_DCC
298	bool "ARM DCC"
299	depends on ARM_DCC
300	help
301	  Select this to enable a debug UART using the ARM JTAG DCC port.
302	  The DCC port can be used for very early debugging and doesn't require
303	  any additional setting like address/baudrate/clock. On systems without
304	  any serial interface this is the easiest way how to get console.
305	  Every ARM core has own DCC port which is the part of debug interface.
306	  This port is available at least on ARMv6, ARMv7, ARMv8 and XScale
307	  architectures.
308
309config DEBUG_MVEBU_A3700_UART
310	bool "Marvell Armada 3700"
311	depends on MVEBU_A3700_UART
312	help
313	  Select this to enable a debug UART using the serial_mvebu driver. You
314	  will need to provide parameters to make this work. The driver will
315	  be available until the real driver-model serial is running.
316
317config DEBUG_UART_ZYNQ
318	bool "Xilinx Zynq"
319	depends on ZYNQ_SERIAL
320	help
321	  Select this to enable a debug UART using the serial_zynq driver. You
322	  will need to provide parameters to make this work. The driver will
323	  be available until the real driver-model serial is running.
324
325config DEBUG_UART_APBUART
326	depends on LEON3
327	bool "Gaisler APBUART"
328	help
329	  Select this to enable a debug UART using the serial_leon3 driver. You
330	  will need to provide parameters to make this work. The driver will
331	  be available until the real driver model serial is running.
332
333config DEBUG_UART_PL010
334	bool "pl010"
335	depends on PL01X_SERIAL
336	help
337	  Select this to enable a debug UART using the pl01x driver with the
338	  PL010 UART type. You will need to provide parameters to make this
339	  work. The driver will be available until the real driver model
340	  serial is running.
341
342config DEBUG_UART_PL011
343	bool "pl011"
344	depends on PL011_SERIAL
345	help
346	  Select this to enable a debug UART using the pl01x driver with the
347	  PL011 UART type. You will need to provide parameters to make this
348	  work. The driver will be available until the real driver model
349	  serial is running.
350
351config DEBUG_UART_PIC32
352	bool "Microchip PIC32"
353	depends on PIC32_SERIAL
354	help
355	  Select this to enable a debug UART using the serial_pic32 driver. You
356	  will need to provide parameters to make this work. The driver will
357	  be available until the real driver model serial is running.
358
359config DEBUG_UART_MXC
360	bool "IMX Serial port"
361	depends on MXC_UART
362	help
363	  Select this to enable a debug UART using the serial_mxc driver. You
364	  will need to provide parameters to make this work. The driver will
365	  be available until the real driver model serial is running.
366
367config DEBUG_UART_SANDBOX
368	bool "sandbox"
369	depends on SANDBOX_SERIAL
370	help
371	  Select this to enable the debug UART using the sandbox driver. This
372	  provides basic serial output from the console without needing to
373	  start up driver model. The driver will be available until the real
374	  driver model serial is running.
375
376config DEBUG_UART_SIFIVE
377	bool "SiFive UART"
378	depends on SIFIVE_SERIAL
379	help
380	  Select this to enable a debug UART using the serial_sifive driver. You
381	  will need to provide parameters to make this work. The driver will
382	  be available until the real driver-model serial is running.
383
384config DEBUG_UART_STM32
385	bool "STMicroelectronics STM32"
386	depends on STM32_SERIAL
387	help
388	  Select this to enable a debug UART using the serial_stm32 driver
389	  You will need to provide parameters to make this work.
390	  The driver will be available until the real driver model
391	  serial is running.
392
393config DEBUG_UART_UNIPHIER
394	bool "UniPhier on-chip UART"
395	depends on ARCH_UNIPHIER
396	help
397	  Select this to enable a debug UART using the UniPhier on-chip UART.
398	  You will need to provide DEBUG_UART_BASE to make this work.  The
399	  driver will be available until the real driver-model serial is
400	  running.
401
402config DEBUG_UART_OMAP
403	bool "OMAP uart"
404	depends on OMAP_SERIAL
405	help
406	  Select this to enable a debug UART using the omap ns16550 driver.
407	  You will need to provide parameters to make this work. The driver
408	  will be available until the real driver model serial is running.
409
410config DEBUG_UART_MTK
411	bool "MediaTek High-speed UART"
412	depends on MTK_SERIAL
413	help
414	  Select this to enable a debug UART using the MediaTek High-speed
415	  UART driver.
416	  You will need to provide parameters to make this work. The
417	  driver will be available until the real driver model serial is
418	  running.
419
420config DEBUG_UART_MT7620
421	bool "UART driver for MediaTek MT7620 and earlier SoCs"
422	depends on MT7620_SERIAL
423	help
424	  Select this to enable a debug UART using the UART driver for
425	  MediaTek MT7620 and earlier SoCs.
426	  You will need to provide parameters to make this work. The
427	  driver will be available until the real driver model serial is
428	  running.
429
430endchoice
431
432config DEBUG_UART_BASE
433	hex "Base address of UART"
434	depends on DEBUG_UART
435	default 0 if DEBUG_UART_SANDBOX
436	help
437	  This is the base address of your UART for memory-mapped UARTs.
438
439	  A default should be provided by your board, but if not you will need
440	  to use the correct value here.
441
442config DEBUG_UART_CLOCK
443	int "UART input clock"
444	depends on DEBUG_UART
445	default 0 if DEBUG_UART_SANDBOX
446	help
447	  The UART input clock determines the speed of the internal UART
448	  circuitry. The baud rate is derived from this by dividing the input
449	  clock down.
450
451	  A default should be provided by your board, but if not you will need
452	  to use the correct value here.
453
454config DEBUG_UART_SHIFT
455	int "UART register shift"
456	depends on DEBUG_UART
457	default 0 if DEBUG_UART
458	help
459	  Some UARTs (notably ns16550) support different register layouts
460	  where the registers are spaced either as bytes, words or some other
461	  value. Use this value to specify the shift to use, where 0=byte
462	  registers, 2=32-bit word registers, etc.
463
464config DEBUG_UART_BOARD_INIT
465	bool "Enable board-specific debug UART init"
466	depends on DEBUG_UART
467	help
468	  Some boards need to set things up before the debug UART can be used.
469	  On these boards a call to debug_uart_init() is insufficient. When
470	  this option is enabled, the function board_debug_uart_init() will
471	  be called when debug_uart_init() is called. You can put any code
472	  here that is needed to set up the UART ready for use, such as set
473	  pin multiplexing or enable clocks.
474
475config DEBUG_UART_ANNOUNCE
476	bool "Show a message when the debug UART starts up"
477	depends on DEBUG_UART
478	help
479	  Enable this option to show a message when the debug UART is ready
480	  for use. You will see a message like "<debug_uart> " as soon as
481	  U-Boot has the UART ready for use (i.e. your code calls
482	  debug_uart_init()). This can be useful just as a check that
483	  everything is working.
484
485config DEBUG_UART_SKIP_INIT
486	bool "Skip UART initialization"
487	depends on DEBUG_UART
488	help
489	  Select this if the UART you want to use for debug output is already
490	  initialized by the time U-Boot starts its execution.
491
492config DEBUG_UART_NS16550_CHECK_ENABLED
493	bool "Check if UART is enabled on output"
494	depends on DEBUG_UART
495	depends on DEBUG_UART_NS16550
496	help
497	  Select this if puts()/putc() might be called before the debug UART
498	  has been initialized. If this is disabled, putc() might sit in a
499	  tight loop if it is called before debug_uart_init() has been called.
500
501	  Note that this does not work for every ns16550-compatible UART and
502	  so has to be enabled carefully or you might notice lost characters.
503
504config ALTERA_JTAG_UART
505	bool "Altera JTAG UART support"
506	depends on DM_SERIAL
507	help
508	  Select this to enable an JTAG UART for Altera devices.The JTAG UART
509	  core implements a method to communicate serial character streams
510	  between a host PC and a Qsys system on an Altera FPGA. Please find
511	  details on the "Embedded Peripherals IP User Guide" of Altera.
512
513config ALTERA_JTAG_UART_BYPASS
514	bool "Bypass output when no connection"
515	depends on ALTERA_JTAG_UART
516	help
517	  Bypass console output and keep going even if there is no JTAG
518	  terminal connection with the host. The console output will resume
519	  once the JTAG terminal is connected. Without the bypass, the console
520	  output will wait forever until a JTAG terminal is connected. If you
521	  not are sure, say Y.
522
523config ALTERA_UART
524	bool "Altera UART support"
525	depends on DM_SERIAL
526	help
527	  Select this to enable an UART for Altera devices. Please find
528	  details on the "Embedded Peripherals IP User Guide" of Altera.
529
530config AR933X_UART
531	bool "QCA/Atheros ar933x UART support"
532	depends on DM_SERIAL && SOC_AR933X
533	help
534	  Select this to enable UART support for QCA/Atheros ar933x
535	  devices. This driver uses driver model and requires a device
536	  tree binding to operate, please refer to the document at
537	  doc/device-tree-bindings/serial/qca,ar9330-uart.txt.
538
539config ARC_SERIAL
540	bool "ARC UART support"
541	depends on DM_SERIAL
542	help
543	  Select this to enable support for ARC UART now typically
544	  only used in Synopsys DesignWare ARC simulators like nSIM.
545
546config ARM_DCC
547	bool "ARM Debug Communication Channel (DCC) as UART support"
548	depends on ARM
549	help
550	  Select this to enable using the ARM DCC as a form of UART.
551
552config ATMEL_USART
553	bool "Atmel USART support"
554	help
555	  Select this to enable USART support for Atmel SoCs. It can be
556	  configured in the device tree, and input clock frequency can
557	  be got from the clk node.
558
559config SPL_UART_CLOCK
560	int "SPL fixed UART input clock"
561	depends on ATMEL_USART && SPL && !SPL_CLK
562	default 132096000 if ARCH_AT91
563	help
564	  Provide a fixed clock value as input to the UART controller. This
565	  might be needed on platforms which can't enable CONFIG_SPL_CLK
566	  because of SPL image size restrictions.
567
568config BCM283X_MU_SERIAL
569	bool "Support for BCM283x Mini-UART"
570	depends on DM_SERIAL && ARCH_BCM283X
571	default y
572	help
573	  Select this to enable Mini-UART support on BCM283X family of SoCs.
574
575config BCM283X_PL011_SERIAL
576	bool "Support for BCM283x PL011 UART"
577	depends on PL01X_SERIAL && ARCH_BCM283X
578	default y
579	help
580	  Select this to enable an overriding PL011 driver for BCM283X SoCs
581	  that supports automatic disable, so that it only gets used when
582	  the UART is actually muxed.
583
584config BCM6345_SERIAL
585	bool "Support for BCM6345 UART"
586	depends on DM_SERIAL
587	help
588	  Select this to enable UART on BCM6345 SoCs.
589
590config COREBOOT_SERIAL
591	bool "Coreboot UART support"
592	depends on DM_SERIAL
593	default y if SYS_COREBOOT
594	select SYS_NS16550
595	help
596	  Select this to enable a ns16550-style UART where the platform data
597	  comes from the coreboot 'sysinfo' tables. This allows U-Boot to have
598	  a serial console on any platform without needing to change the
599	  device tree, etc.
600
601config CORTINA_UART
602	bool "Cortina UART support"
603	depends on DM_SERIAL
604	help
605	  Select this to enable UART support for Cortina-Access UART devices
606	  found on CAxxxx SoCs.
607
608config FSL_LINFLEXUART
609	bool "Freescale Linflex UART support"
610	depends on DM_SERIAL
611	help
612	  Select this to enable the Linflex serial module found on some
613	  NXP SoCs like S32V234.
614
615config FSL_LPUART
616	bool "Freescale LPUART support"
617	help
618	  Select this to enable a Low Power UART for Freescale VF610 and
619	  QorIQ Layerscape devices.
620
621config MVEBU_A3700_UART
622	bool "UART support for Armada 3700"
623	default n
624	help
625	  Choose this option to add support for UART driver on the Marvell
626	  Armada 3700 SoC. The base address is configured via DT.
627
628config MCFUART
629	bool "Freescale ColdFire UART support"
630        help
631          Choose this option to add support for UART driver on the ColdFire
632          SoC's family. The serial communication channel provides a full-duplex
633          asynchronous/synchronous receiver and transmitter deriving an
634          operating frequency from the internal bus clock or an external clock.
635
636config MXC_UART
637	bool "IMX serial port support"
638	depends on ARCH_MX25 || ARCH_MX31 || TARGET_APF27 || TARGET_FLEA3 \
639		|| MX5 || MX6 || MX7 || IMX8M
640	help
641	  If you have a machine based on a Motorola IMX CPU you
642	  can enable its onboard serial port by enabling this option.
643
644config NULLDEV_SERIAL
645	bool "Null serial device"
646	help
647	  Select this to enable null serial device support. A null serial
648	  device merely acts as a placeholder for a serial device and does
649	  nothing for all it's operation.
650
651config PIC32_SERIAL
652	bool "Support for Microchip PIC32 on-chip UART"
653	depends on DM_SERIAL && MACH_PIC32
654	default y
655	help
656	  Support for the UART found on Microchip PIC32 SoC's.
657
658config SYS_NS16550
659	bool "NS16550 UART or compatible"
660	help
661	  Support NS16550 UART or compatible. This can be enabled in the
662	  device tree with the correct input clock frequency. If the input
663	  clock frequency is not defined in the device tree, the macro
664	  CONFIG_SYS_NS16550_CLK defined in a legacy board header file will
665	  be used. It can be a constant or a function to get clock, eg,
666	  get_serial_clock().
667
668config NS16550_DYNAMIC
669	bool "Allow NS16550 to be configured at runtime"
670	default y if SYS_COREBOOT || SYS_SLIMBOOTLOADER
671	help
672	  Enable this option to allow device-tree control of the driver.
673
674	  Normally this driver is controlled by the following options:
675
676	  CONFIG_SYS_NS16550_PORT_MAPPED - indicates that port I/O is used for
677	     access. If not enabled, then the UART is memory-mapped.
678	  CONFIG_SYS_NS16550_MEM32 - if memory-mapped, indicates that 32-bit
679	     access should be used (instead of 8-bit)
680	  CONFIG_SYS_NS16550_REG_SIZE - indicates register width and also
681	     endianness. If positive, big-endian access is used. If negative,
682	     little-endian is used.
683
684	  It is not a good practice for a driver to be statically configured,
685	  since it prevents the same driver being used for different types of
686	  UARTs in a system. This option avoids this problem at the cost of a
687	  slightly increased code size.
688
689config INTEL_MID_SERIAL
690	bool "Intel MID platform UART support"
691	depends on DM_SERIAL && OF_CONTROL
692	depends on INTEL_MID
693	select SYS_NS16550
694	help
695	  Select this to enable a UART for Intel MID platforms.
696	  This uses the ns16550 driver as a library.
697
698config PL010_SERIAL
699	bool "ARM PL010 driver"
700	depends on !DM_SERIAL
701	help
702	  Select this to enable a UART for platforms using PL010.
703
704config PL011_SERIAL
705	bool "ARM PL011 driver"
706	depends on !DM_SERIAL
707	help
708	  Select this to enable a UART for platforms using PL011.
709
710config PL01X_SERIAL
711	bool "ARM PL010 and PL011 driver"
712	depends on DM_SERIAL
713	help
714	  Select this to enable a UART for platforms using PL010 or PL011.
715
716config ROCKCHIP_SERIAL
717	bool "Rockchip on-chip UART support"
718	depends on DM_SERIAL && SPL_OF_PLATDATA
719	help
720	  Select this to enable a debug UART for Rockchip devices when using
721	  CONFIG_SPL_OF_PLATDATA (i.e. a compiled-in device tree replacemenmt).
722	  This uses the ns16550 driver, converting the platdata from of-platdata
723	  to the ns16550 format.
724
725config S5P_SERIAL
726	bool "Support for Samsung S5P UART"
727	depends on ARCH_EXYNOS || ARCH_S5PC1XX
728	default y
729	help
730	  Select this to enable Samsung S5P UART support.
731
732config SANDBOX_SERIAL
733	bool "Sandbox UART support"
734	depends on SANDBOX
735	help
736	  Select this to enable a seral UART for sandbox. This is required to
737	  operate correctly, otherwise you will see no serial output from
738	  sandbox. The emulated UART will display to the console and console
739	  input will be fed into the UART. This allows you to interact with
740	  U-Boot.
741
742	  The operation of the console is controlled by the -t command-line
743	  flag. In raw mode, U-Boot sees all characters from the terminal
744	  before they are processed, including Ctrl-C. In cooked mode, Ctrl-C
745	  is processed by the terminal, and terminates U-Boot. Valid options
746	  are:
747
748	     -t raw-with-sigs	Raw mode, Ctrl-C will terminate U-Boot
749	     -t raw		Raw mode, Ctrl-C is processed by U-Boot
750	     -t cooked		Cooked mode, Ctrl-C terminates
751
752config SCIF_CONSOLE
753	bool "Renesas SCIF UART support"
754	depends on SH || ARCH_RMOBILE
755	help
756	  Select this to enable Renesas SCIF UART. To operate serial ports
757	  on systems with RCar or SH SoCs, say Y to this option. If unsure,
758	  say N.
759
760config UNIPHIER_SERIAL
761	bool "Support for UniPhier on-chip UART"
762	depends on ARCH_UNIPHIER
763	default y
764	help
765	  If you have a UniPhier based board and want to use the on-chip
766	  serial ports, say Y to this option. If unsure, say N.
767
768config XILINX_UARTLITE
769	bool "Xilinx Uarlite support"
770	depends on DM_SERIAL
771	help
772	  If you have a Xilinx based board and want to use the uartlite
773	  serial ports, say Y to this option. If unsure, say N.
774
775config MESON_SERIAL
776	bool "Support for Amlogic Meson UART"
777	depends on DM_SERIAL && ARCH_MESON
778	help
779	  If you have an Amlogic Meson based board and want to use the on-chip
780	  serial ports, say Y to this option. If unsure, say N.
781
782config MSM_SERIAL
783	bool "Qualcomm on-chip UART"
784	depends on DM_SERIAL
785	help
786	  Support Data Mover UART used on Qualcomm Snapdragon SoCs.
787	  It should support all Qualcomm devices with UARTDM version 1.4,
788	  for example APQ8016 and MSM8916.
789	  Single baudrate is supported in current implementation (115200).
790
791config OMAP_SERIAL
792	bool "Support for OMAP specific UART"
793	depends on DM_SERIAL
794	default y if (ARCH_OMAP2PLUS || ARCH_K3)
795	select SYS_NS16550
796	help
797	  If you have an TI based SoC and want to use the on-chip serial
798	  port, say Y to this option. If unsure say N.
799
800config OWL_SERIAL
801	bool "Actions Semi OWL UART"
802	depends on DM_SERIAL && ARCH_OWL
803	help
804	  If you have a Actions Semi OWL based board and want to use the on-chip
805	  serial port, say Y to this option. If unsure, say N.
806	  Single baudrate is supported in current implementation (115200).
807
808config PXA_SERIAL
809	bool "PXA serial port support"
810	help
811	  If you have a machine based on a Marvell XScale PXA2xx CPU you
812	  can enable its onboard serial ports by enabling this option.
813
814config SIFIVE_SERIAL
815	bool "SiFive UART support"
816	depends on DM_SERIAL
817	help
818	  This driver supports the SiFive UART. If unsure say N.
819
820config STI_ASC_SERIAL
821	bool "STMicroelectronics on-chip UART"
822	depends on DM_SERIAL && ARCH_STI
823	help
824	  Select this to enable Asynchronous Serial Controller available
825	  on STiH410 SoC. This is a basic implementation,  it supports
826	  following baudrate 9600, 19200, 38400, 57600 and 115200.
827
828config STM32_SERIAL
829	bool "STMicroelectronics STM32 SoCs on-chip UART"
830	depends on DM_SERIAL && (STM32F4 || STM32F7 || STM32H7 || ARCH_STM32MP)
831	help
832	  If you have a machine based on a STM32 F4, F7, H7 or MP1 SOC
833	  you can enable its onboard serial ports, say Y to this option.
834	  If unsure, say N.
835
836config ZYNQ_SERIAL
837	bool "Cadence (Xilinx Zynq) UART support"
838	depends on DM_SERIAL
839	help
840	  This driver supports the Cadence UART. It is found e.g. in Xilinx
841	  Zynq/ZynqMP.
842
843config MTK_SERIAL
844	bool "MediaTek High-speed UART support"
845	depends on DM_SERIAL
846	help
847	  Select this to enable UART support for MediaTek High-speed UART
848	  devices. This driver uses driver model and requires a device
849	  tree binding to operate.
850	  The High-speed UART is compatible with the ns16550a UART and have
851	  its own high-speed registers.
852
853config MT7620_SERIAL
854	bool "UART driver for MediaTek MT7620 and earlier SoCs"
855	depends on DM_SERIAL
856	help
857	  Select this to enable UART support for MediaTek MT7620 and earlier
858	  SoCs. This driver uses driver model and requires a device tree
859	  binding to operate.
860	  The UART driver for MediaTek MT7620 and earlier SoCs is *NOT*
861	  compatible with the ns16550a UART.
862
863config MPC8XX_CONS
864	bool "Console driver for MPC8XX"
865	depends on MPC8xx
866	default y
867
868config XEN_SERIAL
869	bool "XEN serial support"
870	depends on XEN
871	help
872	  If built without DM support, then requires Xen
873	  to be built with CONFIG_VERBOSE_DEBUG.
874
875choice
876	prompt "Console port"
877	default 8xx_CONS_SMC1
878	depends on MPC8XX_CONS
879	help
880	  Depending on board, select one serial port
881	  (CONFIG_8xx_CONS_SMC1 or CONFIG_8xx_CONS_SMC2)
882
883config 8xx_CONS_SMC1
884	bool "SMC1"
885
886config 8xx_CONS_SMC2
887	bool "SMC2"
888
889endchoice
890
891config SYS_SMC_RXBUFLEN
892	int "Console Rx buffer length"
893	depends on MPC8XX_CONS
894	default 1
895	help
896	  With CONFIG_SYS_SMC_RXBUFLEN it is possible to define
897	  the maximum receive buffer length for the SMC.
898	  This option is actual only for 8xx possible.
899	  If using CONFIG_SYS_SMC_RXBUFLEN also CONFIG_SYS_MAXIDLE
900	  must be defined, to setup the maximum idle timeout for
901	  the SMC.
902
903config SYS_MAXIDLE
904	int "maximum idle timeout"
905	depends on MPC8XX_CONS
906	default 0
907
908config SYS_BRGCLK_PRESCALE
909	int "BRG Clock Prescale"
910	depends on MPC8XX_CONS
911	default 1
912
913config SYS_SDSR
914	hex "SDSR Value"
915	depends on MPC8XX_CONS
916	default 0x83
917
918config SYS_SDMR
919	hex "SDMR Value"
920	depends on MPC8XX_CONS
921	default 0
922
923endmenu
924