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