xref: /openbmc/u-boot/drivers/serial/Kconfig (revision 4f6c7b12)
1#
2# Serial device configuration
3#
4
5menu "Serial drivers"
6
7config BAUDRATE
8	int "Default baudrate"
9	default 115200
10	help
11	  Select a default baudrate, where "default" has a driver-specific
12	  meaning of either setting the baudrate for the early debug UART
13	  in the SPL stage (most drivers) or for choosing a default baudrate
14	  in the absence of an environment setting (serial_mxc.c).
15
16config REQUIRE_SERIAL_CONSOLE
17	bool "Require a serial port for console"
18	# Running without a serial console is not supported by the
19	# non-dm serial code
20	depends on DM_SERIAL
21	default y
22	help
23	  Require a serial port for the console, and panic if none is found
24	  during serial port initialization (default y). Set this to n on
25	  boards which have no debug serial port whatsoever.
26
27config SERIAL_PRESENT
28	bool "Provide a serial driver"
29	depends on DM_SERIAL
30	default y
31	help
32	  In very space-constrained devices even the full UART driver is too
33	  large. In this case the debug UART can still be used in some cases.
34	  This option enables the full UART in U-Boot, so if is it disabled,
35	  the full UART driver will be omitted, thus saving space.
36
37config SPL_SERIAL_PRESENT
38	bool "Provide a serial driver in SPL"
39	depends on DM_SERIAL
40	default y
41	help
42	  In very space-constrained devices even the full UART driver is too
43	  large. In this case the debug UART can still be used in some cases.
44	  This option enables the full UART in SPL, so if is it disabled,
45	  the full UART driver will be omitted, thus saving space.
46
47config CONS_INDEX
48	int "UART used for console"
49	depends on ARCH_SUNXI
50	default 2 if MACH_SUN5I
51	default 5 if MACH_SUN8I_A23 || MACH_SUN8I_A33
52	default 1
53	help
54	  Configures the console index.
55	  For Allwinner SoC., default values are 2 for SUN5I and 5 for A23/A33.
56	  Otherwise, the index equals 1.
57
58config DM_SERIAL
59	bool "Enable Driver Model for serial drivers"
60	depends on DM
61	help
62	  Enable driver model for serial. This replaces
63	  drivers/serial/serial.c with the serial uclass, which
64	  implements serial_putc() etc. The uclass interface is
65	  defined in include/serial.h.
66
67config SERIAL_RX_BUFFER
68	bool "Enable RX buffer for serial input"
69	depends on DM_SERIAL
70	help
71	  Enable RX buffer support for the serial driver. This enables
72	  pasting longer strings, even when the RX FIFO of the UART is
73	  not big enough (e.g. 16 bytes on the normal NS16550).
74
75config SERIAL_RX_BUFFER_SIZE
76	int "RX buffer size"
77	depends on SERIAL_RX_BUFFER
78	default 256
79	help
80	  The size of the RX buffer (needs to be power of 2)
81
82config SPL_DM_SERIAL
83	bool "Enable Driver Model for serial drivers in SPL"
84	depends on DM_SERIAL
85	default y if SPL && DM_SERIAL
86	help
87	  Enable driver model for serial in SPL. This replaces
88	  drivers/serial/serial.c with the serial uclass, which
89	  implements serial_putc() etc. The uclass interface is
90	  defined in include/serial.h.
91
92config TPL_DM_SERIAL
93	bool "Enable Driver Model for serial drivers in TPL"
94	depends on DM_SERIAL
95	default y if TPL && DM_SERIAL
96	help
97	  Enable driver model for serial in TPL. This replaces
98	  drivers/serial/serial.c with the serial uclass, which
99	  implements serial_putc() etc. The uclass interface is
100	  defined in include/serial.h.
101
102config DEBUG_UART
103	bool "Enable an early debug UART for debugging"
104	help
105	  The debug UART is intended for use very early in U-Boot to debug
106	  problems when an ICE or other debug mechanism is not available.
107
108	  To use it you should:
109	  - Make sure your UART supports this interface
110	  - Enable CONFIG_DEBUG_UART
111	  - Enable the CONFIG for your UART to tell it to provide this interface
112	        (e.g. CONFIG_DEBUG_UART_NS16550)
113	  - Define the required settings as needed (see below)
114	  - Call debug_uart_init() before use
115	  - Call debug_uart_putc() to output a character
116
117	  Depending on your platform it may be possible to use this UART before
118	  a stack is available.
119
120	  If your UART does not support this interface you can probably add
121	  support quite easily. Remember that you cannot use driver model and
122	  it is preferred to use no stack.
123
124	  You must not use this UART once driver model is working and the
125	  serial drivers are up and running (done in serial_init()). Otherwise
126	  the drivers may conflict and you will get strange output.
127
128choice
129	prompt "Select which UART will provide the debug UART"
130	depends on DEBUG_UART
131	default DEBUG_UART_NS16550
132
133config DEBUG_UART_ALTERA_JTAGUART
134	bool "Altera JTAG UART"
135	help
136	  Select this to enable a debug UART using the altera_jtag_uart driver.
137	  You will need to provide parameters to make this work. The driver will
138	  be available until the real driver model serial is running.
139
140config DEBUG_UART_ALTERA_UART
141	bool "Altera UART"
142	help
143	  Select this to enable a debug UART using the altera_uart driver.
144	  You will need to provide parameters to make this work. The driver will
145	  be available until the real driver model serial is running.
146
147config DEBUG_UART_AR933X
148	bool "QCA/Atheros ar933x"
149	depends on AR933X_UART
150	help
151	  Select this to enable a debug UART using the ar933x uart driver.
152	  You will need to provide parameters to make this work. The
153	  driver will be available until the real driver model serial is
154	  running.
155
156config DEBUG_UART_ATMEL
157	bool "Atmel USART"
158	help
159	  Select this to enable a debug UART using the atmel usart driver. You
160	  will need to provide parameters to make this work. The driver will
161	  be available until the real driver-model serial is running.
162
163config DEBUG_UART_BCM6345
164	bool "BCM6345 UART"
165	depends on BCM6345_SERIAL
166	help
167	  Select this to enable a debug UART on BCM6345 SoCs. You
168	  will need to provide parameters to make this work. The driver will
169	  be available until the real driver model serial is running.
170
171config DEBUG_UART_NS16550
172	bool "ns16550"
173	help
174	  Select this to enable a debug UART using the ns16550 driver. You
175	  will need to provide parameters to make this work. The driver will
176	  be available until the real driver model serial is running.
177
178config DEBUG_EFI_CONSOLE
179	bool "EFI"
180	depends on EFI_APP
181	help
182	  Select this to enable a debug console which calls back to EFI to
183	  output to the console. This can be useful for early debugging of
184	  U-Boot when running on top of EFI (Extensive Firmware Interface).
185	  This is a type of BIOS used by PCs.
186
187config DEBUG_UART_S5P
188	bool "Samsung S5P"
189	help
190	  Select this to enable a debug UART using the serial_s5p driver. You
191	  will need to provide parameters to make this work. The driver will
192	  be available until the real driver-model serial is running.
193
194config DEBUG_UART_MESON
195	bool "Amlogic Meson"
196	depends on MESON_SERIAL
197	help
198	  Select this to enable a debug UART using the serial_meson driver. You
199	  will need to provide parameters to make this work. The driver will
200	  be available until the real driver-model serial is running.
201
202config DEBUG_UART_UARTLITE
203	bool "Xilinx Uartlite"
204	help
205	  Select this to enable a debug UART using the serial_uartlite driver.
206	  You will need to provide parameters to make this work. The driver will
207	  be available until the real driver-model serial is running.
208
209config DEBUG_UART_ARM_DCC
210	bool "ARM DCC"
211	help
212	  Select this to enable a debug UART using the ARM JTAG DCC port.
213	  The DCC port can be used for very early debugging and doesn't require
214	  any additional setting like address/baudrate/clock. On systems without
215	  any serial interface this is the easiest way how to get console.
216	  Every ARM core has own DCC port which is the part of debug interface.
217	  This port is available at least on ARMv6, ARMv7, ARMv8 and XScale
218	  architectures.
219
220config DEBUG_MVEBU_A3700_UART
221	bool "Marvell Armada 3700"
222	help
223	  Select this to enable a debug UART using the serial_mvebu driver. You
224	  will need to provide parameters to make this work. The driver will
225	  be available until the real driver-model serial is running.
226
227config DEBUG_UART_ZYNQ
228	bool "Xilinx Zynq"
229	help
230	  Select this to enable a debug UART using the serial_zynq driver. You
231	  will need to provide parameters to make this work. The driver will
232	  be available until the real driver-model serial is running.
233
234config DEBUG_UART_APBUART
235	depends on LEON3
236	bool "Gaisler APBUART"
237	help
238	  Select this to enable a debug UART using the serial_leon3 driver. You
239	  will need to provide parameters to make this work. The driver will
240	  be available until the real driver model serial is running.
241
242config DEBUG_UART_PL010
243	bool "pl010"
244	help
245	  Select this to enable a debug UART using the pl01x driver with the
246	  PL010 UART type. You will need to provide parameters to make this
247	  work. The driver will be available until the real driver model
248	  serial is running.
249
250config DEBUG_UART_PL011
251	bool "pl011"
252	help
253	  Select this to enable a debug UART using the pl01x driver with the
254	  PL011 UART type. You will need to provide parameters to make this
255	  work. The driver will be available until the real driver model
256	  serial is running.
257
258config DEBUG_UART_PIC32
259	bool "Microchip PIC32"
260	depends on PIC32_SERIAL
261	help
262	  Select this to enable a debug UART using the serial_pic32 driver. You
263	  will need to provide parameters to make this work. The driver will
264	  be available until the real driver model serial is running.
265
266config DEBUG_UART_MXC
267	bool "IMX Serial port"
268	depends on MXC_UART
269	help
270	  Select this to enable a debug UART using the serial_mxc driver. You
271	  will need to provide parameters to make this work. The driver will
272	  be available until the real driver model serial is running.
273
274config DEBUG_UART_UNIPHIER
275	bool "UniPhier on-chip UART"
276	depends on ARCH_UNIPHIER
277	help
278	  Select this to enable a debug UART using the UniPhier on-chip UART.
279	  You will need to provide DEBUG_UART_BASE to make this work.  The
280	  driver will be available until the real driver-model serial is
281	  running.
282
283config DEBUG_UART_OMAP
284	bool "OMAP uart"
285	help
286	  Select this to enable a debug UART using the omap ns16550 driver.
287	  You will need to provide parameters to make this work. The driver
288	  will be available until the real driver model serial is running.
289
290endchoice
291
292config DEBUG_UART_BASE
293	hex "Base address of UART"
294	depends on DEBUG_UART
295	help
296	  This is the base address of your UART for memory-mapped UARTs.
297
298	  A default should be provided by your board, but if not you will need
299	  to use the correct value here.
300
301config DEBUG_UART_CLOCK
302	int "UART input clock"
303	depends on DEBUG_UART
304	help
305	  The UART input clock determines the speed of the internal UART
306	  circuitry. The baud rate is derived from this by dividing the input
307	  clock down.
308
309	  A default should be provided by your board, but if not you will need
310	  to use the correct value here.
311
312config DEBUG_UART_SHIFT
313	int "UART register shift"
314	depends on DEBUG_UART
315	default 0 if DEBUG_UART
316	help
317	  Some UARTs (notably ns16550) support different register layouts
318	  where the registers are spaced either as bytes, words or some other
319	  value. Use this value to specify the shift to use, where 0=byte
320	  registers, 2=32-bit word registers, etc.
321
322config DEBUG_UART_BOARD_INIT
323	bool "Enable board-specific debug UART init"
324	depends on DEBUG_UART
325	help
326	  Some boards need to set things up before the debug UART can be used.
327	  On these boards a call to debug_uart_init() is insufficient. When
328	  this option is enabled, the function board_debug_uart_init() will
329	  be called when debug_uart_init() is called. You can put any code
330	  here that is needed to set up the UART ready for use, such as set
331	  pin multiplexing or enable clocks.
332
333config DEBUG_UART_ANNOUNCE
334	bool "Show a message when the debug UART starts up"
335	depends on DEBUG_UART
336	help
337	  Enable this option to show a message when the debug UART is ready
338	  for use. You will see a message like "<debug_uart> " as soon as
339	  U-Boot has the UART ready for use (i.e. your code calls
340	  debug_uart_init()). This can be useful just as a check that
341	  everything is working.
342
343config DEBUG_UART_SKIP_INIT
344	bool "Skip UART initialization"
345	help
346	  Select this if the UART you want to use for debug output is already
347	  initialized by the time U-Boot starts its execution.
348
349config ALTERA_JTAG_UART
350	bool "Altera JTAG UART support"
351	depends on DM_SERIAL
352	help
353	  Select this to enable an JTAG UART for Altera devices.The JTAG UART
354	  core implements a method to communicate serial character streams
355	  between a host PC and a Qsys system on an Altera FPGA. Please find
356	  details on the "Embedded Peripherals IP User Guide" of Altera.
357
358config ALTERA_JTAG_UART_BYPASS
359	bool "Bypass output when no connection"
360	depends on ALTERA_JTAG_UART
361	help
362	  Bypass console output and keep going even if there is no JTAG
363	  terminal connection with the host. The console output will resume
364	  once the JTAG terminal is connected. Without the bypass, the console
365	  output will wait forever until a JTAG terminal is connected. If you
366	  not are sure, say Y.
367
368config ALTERA_UART
369	bool "Altera UART support"
370	depends on DM_SERIAL
371	help
372	  Select this to enable an UART for Altera devices. Please find
373	  details on the "Embedded Peripherals IP User Guide" of Altera.
374
375config AR933X_UART
376	bool "QCA/Atheros ar933x UART support"
377	depends on DM_SERIAL && SOC_AR933X
378	help
379	  Select this to enable UART support for QCA/Atheros ar933x
380	  devices. This driver uses driver model and requires a device
381	  tree binding to operate, please refer to the document at
382	  doc/device-tree-bindings/serial/qca,ar9330-uart.txt.
383
384config ATMEL_USART
385	bool "Atmel USART support"
386	help
387	  Select this to enable USART support for Atmel SoCs. It can be
388	  configured in the device tree, and input clock frequency can
389	  be got from the clk node.
390
391config BCM283X_MU_SERIAL
392	bool "Support for BCM283x Mini-UART"
393	depends on DM_SERIAL && ARCH_BCM283X
394	default y
395	help
396	  Select this to enable Mini-UART support on BCM283X family of SoCs.
397
398config BCM283X_PL011_SERIAL
399	bool "Support for BCM283x PL011 UART"
400	depends on PL01X_SERIAL && ARCH_BCM283X
401	default y
402	help
403	  Select this to enable an overriding PL011 driver for BCM283X SoCs
404	  that supports automatic disable, so that it only gets used when
405	  the UART is actually muxed.
406
407config BCM6345_SERIAL
408	bool "Support for BCM6345 UART"
409	depends on DM_SERIAL && ARCH_BMIPS
410	help
411	  Select this to enable UART on BCM6345 SoCs.
412
413config FSL_LPUART
414	bool "Freescale LPUART support"
415	help
416	  Select this to enable a Low Power UART for Freescale VF610 and
417	  QorIQ Layerscape devices.
418
419config MVEBU_A3700_UART
420	bool "UART support for Armada 3700"
421	default n
422	help
423	  Choose this option to add support for UART driver on the Marvell
424	  Armada 3700 SoC. The base address is configured via DT.
425
426config MXC_UART
427	bool "IMX serial port support"
428	depends on MX5 || MX6
429	help
430	  If you have a machine based on a Motorola IMX CPU you
431	  can enable its onboard serial port by enabling this option.
432
433config NULLDEV_SERIAL
434	bool "Null serial device"
435	help
436	  Select this to enable null serial device support. A null serial
437	  device merely acts as a placeholder for a serial device and does
438	  nothing for all it's operation.
439
440config PIC32_SERIAL
441	bool "Support for Microchip PIC32 on-chip UART"
442	depends on DM_SERIAL && MACH_PIC32
443	default y
444	help
445	  Support for the UART found on Microchip PIC32 SoC's.
446
447config SYS_NS16550
448	bool "NS16550 UART or compatible"
449	help
450	  Support NS16550 UART or compatible. This can be enabled in the
451	  device tree with the correct input clock frequency. If the input
452	  clock frequency is not defined in the device tree, the macro
453	  CONFIG_SYS_NS16550_CLK defined in a legacy board header file will
454	  be used. It can be a constant or a function to get clock, eg,
455	  get_serial_clock().
456
457config INTEL_MID_SERIAL
458	bool "Intel MID platform UART support"
459	depends on DM_SERIAL && OF_CONTROL
460	depends on INTEL_MID
461	select SYS_NS16550
462	help
463	  Select this to enable a UART for Intel MID platforms.
464	  This uses the ns16550 driver as a library.
465
466config PL010_SERIAL
467	bool "ARM PL010 driver"
468	depends on !DM_SERIAL
469	help
470	  Select this to enable a UART for platforms using PL010.
471
472config PL011_SERIAL
473	bool "ARM PL011 driver"
474	depends on !DM_SERIAL
475	help
476	  Select this to enable a UART for platforms using PL011.
477
478config PL01X_SERIAL
479	bool "ARM PL010 and PL011 driver"
480	depends on DM_SERIAL
481	help
482	  Select this to enable a UART for platforms using PL010 or PL011.
483
484config ROCKCHIP_SERIAL
485	bool "Rockchip on-chip UART support"
486	depends on DM_SERIAL && SPL_OF_PLATDATA
487	help
488	  Select this to enable a debug UART for Rockchip devices when using
489	  CONFIG_SPL_OF_PLATDATA (i.e. a compiled-in device tree replacemenmt).
490	  This uses the ns16550 driver, converting the platdata from of-platdata
491	  to the ns16550 format.
492
493config SANDBOX_SERIAL
494	bool "Sandbox UART support"
495	depends on SANDBOX
496	help
497	  Select this to enable a seral UART for sandbox. This is required to
498	  operate correctly, otherwise you will see no serial output from
499	  sandbox. The emulated UART will display to the console and console
500	  input will be fed into the UART. This allows you to interact with
501	  U-Boot.
502
503	  The operation of the console is controlled by the -t command-line
504	  flag. In raw mode, U-Boot sees all characters from the terminal
505	  before they are processed, including Ctrl-C. In cooked mode, Ctrl-C
506	  is processed by the terminal, and terminates U-Boot. Valid options
507	  are:
508
509	     -t raw-with-sigs	Raw mode, Ctrl-C will terminate U-Boot
510	     -t raw		Raw mode, Ctrl-C is processed by U-Boot
511	     -t cooked		Cooked mode, Ctrl-C terminates
512
513config SCIF_CONSOLE
514	bool "Renesas SCIF UART support"
515	depends on SH || ARCH_RMOBILE
516	help
517	  Select this to enable Renesas SCIF UART. To operate serial ports
518	  on systems with RCar or SH SoCs, say Y to this option. If unsure,
519	  say N.
520
521config UNIPHIER_SERIAL
522	bool "Support for UniPhier on-chip UART"
523	depends on ARCH_UNIPHIER
524	default y
525	help
526	  If you have a UniPhier based board and want to use the on-chip
527	  serial ports, say Y to this option. If unsure, say N.
528
529config XILINX_UARTLITE
530	bool "Xilinx Uarlite support"
531	depends on DM_SERIAL && (MICROBLAZE || ARCH_ZYNQ || ARCH_ZYNQMP || 4xx)
532	help
533	  If you have a Xilinx based board and want to use the uartlite
534	  serial ports, say Y to this option. If unsure, say N.
535
536config MESON_SERIAL
537	bool "Support for Amlogic Meson UART"
538	depends on DM_SERIAL && ARCH_MESON
539	help
540	  If you have an Amlogic Meson based board and want to use the on-chip
541	  serial ports, say Y to this option. If unsure, say N.
542
543config MSM_SERIAL
544	bool "Qualcomm on-chip UART"
545	depends on DM_SERIAL
546	help
547	  Support Data Mover UART used on Qualcomm Snapdragon SoCs.
548	  It should support all Qualcomm devices with UARTDM version 1.4,
549	  for example APQ8016 and MSM8916.
550	  Single baudrate is supported in current implementation (115200).
551
552config PXA_SERIAL
553	bool "PXA serial port support"
554	help
555	  If you have a machine based on a Marvell XScale PXA2xx CPU you
556	  can enable its onboard serial ports by enabling this option.
557
558config STI_ASC_SERIAL
559	bool "STMicroelectronics on-chip UART"
560	depends on DM_SERIAL && ARCH_STI
561	help
562	  Select this to enable Asynchronous Serial Controller available
563	  on STiH410 SoC. This is a basic implementation,  it supports
564	  following baudrate 9600, 19200, 38400, 57600 and 115200.
565
566config STM32_SERIAL
567	bool "STMicroelectronics STM32 SoCs on-chip UART"
568	depends on DM_SERIAL && (STM32F4 || STM32F7 || STM32H7)
569	help
570	  If you have a machine based on a STM32 F4, F7 or H7 SoC you can
571	  enable its onboard serial ports, say Y to this option.
572	  If unsure, say N.
573
574config ZYNQ_SERIAL
575	bool "Cadence (Xilinx Zynq) UART support"
576	depends on DM_SERIAL && (MICROBLAZE || ARCH_ZYNQ || ARCH_ZYNQMP)
577	help
578	  This driver supports the Cadence UART. It is found e.g. in Xilinx
579	  Zynq/ZynqMP.
580
581config MPC8XX_CONS
582	bool "Console driver for MPC8XX"
583	depends on 8xx
584	default y
585
586choice
587	prompt "Console port"
588	default 8xx_CONS_SMC1
589	depends on MPC8XX_CONS
590	help
591	  Depending on board, select one serial port
592	  (CONFIG_8xx_CONS_SMC1 or CONFIG_8xx_CONS_SMC2)
593
594config 8xx_CONS_SMC1
595	bool "SMC1"
596
597config 8xx_CONS_SMC2
598	bool "SMC2"
599
600endchoice
601
602config SYS_SMC_RXBUFLEN
603	int "Console Rx buffer length"
604	depends on MPC8XX_CONS
605	default 1
606	help
607	  With CONFIG_SYS_SMC_RXBUFLEN it is possible to define
608	  the maximum receive buffer length for the SMC.
609	  This option is actual only for 8xx possible.
610	  If using CONFIG_SYS_SMC_RXBUFLEN also CONFIG_SYS_MAXIDLE
611	  must be defined, to setup the maximum idle timeout for
612	  the SMC.
613
614config SYS_MAXIDLE
615	int "maximum idle timeout"
616	depends on MPC8XX_CONS
617	default 0
618
619config SYS_BRGCLK_PRESCALE
620	int "BRG Clock Prescale"
621	depends on MPC8XX_CONS
622	default 1
623
624config SYS_SDSR
625	hex "SDSR Value"
626	depends on MPC8XX_CONS
627	default 0x83
628
629config SYS_SDMR
630	hex "SDMR Value"
631	depends on MPC8XX_CONS
632	default 0
633
634endmenu
635