xref: /openbmc/u-boot/drivers/serial/Kconfig (revision 412400ab)
1#
2# Serial device configuration
3#
4
5menu "Serial drivers"
6
7config REQUIRE_SERIAL_CONSOLE
8	bool "Require a serial port for console"
9	# Running without a serial console is not supported by the
10	# non-dm serial code
11	depends on DM_SERIAL
12	default y
13	help
14	  Require a serial port for the console, and panic if none is found
15	  during serial port initialization (default y). Set this to n on
16	  boards which have no debug serial port whatsoever.
17
18config DM_SERIAL
19	bool "Enable Driver Model for serial drivers"
20	depends on DM
21	help
22	  Enable driver model for serial. This replaces
23	  drivers/serial/serial.c with the serial uclass, which
24	  implements serial_putc() etc. The uclass interface is
25	  defined in include/serial.h.
26
27config DEBUG_UART
28	bool "Enable an early debug UART for debugging"
29	help
30	  The debug UART is intended for use very early in U-Boot to debug
31	  problems when an ICE or other debug mechanism is not available.
32
33	  To use it you should:
34	  - Make sure your UART supports this interface
35	  - Enable CONFIG_DEBUG_UART
36	  - Enable the CONFIG for your UART to tell it to provide this interface
37	        (e.g. CONFIG_DEBUG_UART_NS16550)
38	  - Define the required settings as needed (see below)
39	  - Call debug_uart_init() before use
40	  - Call debug_uart_putc() to output a character
41
42	  Depending on your platform it may be possible to use this UART before
43	  a stack is available.
44
45	  If your UART does not support this interface you can probably add
46	  support quite easily. Remember that you cannot use driver model and
47	  it is preferred to use no stack.
48
49	  You must not use this UART once driver model is working and the
50	  serial drivers are up and running (done in serial_init()). Otherwise
51	  the drivers may conflict and you will get strange output.
52
53choice
54	prompt "Select which UART will provide the debug UART"
55	depends on DEBUG_UART
56
57config DEBUG_UART_NS16550
58	bool "ns16550"
59	help
60	  Select this to enable a debug UART using the ns16550 driver. You
61	  will need to provide parameters to make this work. The driver will
62	  be available until the real driver model serial is running.
63
64config DEBUG_EFI_CONSOLE
65	bool "EFI"
66	depends on EFI_APP
67	help
68	  Select this to enable a debug console which calls back to EFI to
69	  output to the console. This can be useful for early debugging of
70	  U-Boot when running on top of EFI (Extensive Firmware Interface).
71	  This is a type of BIOS used by PCs.
72
73config DEBUG_UART_S5P
74	bool "Samsung S5P"
75	help
76	  Select this to enable a debug UART using the serial_s5p driver. You
77	  will need to provide parameters to make this work. The driver will
78	  be available until the real driver-model serial is running.
79
80endchoice
81
82config DEBUG_UART_BASE
83	hex "Base address of UART"
84	depends on DEBUG_UART
85	help
86	  This is the base address of your UART for memory-mapped UARTs.
87
88	  A default should be provided by your board, but if not you will need
89	  to use the correct value here.
90
91config DEBUG_UART_CLOCK
92	int "UART input clock"
93	depends on DEBUG_UART
94	help
95	  The UART input clock determines the speed of the internal UART
96	  circuitry. The baud rate is derived from this by dividing the input
97	  clock down.
98
99	  A default should be provided by your board, but if not you will need
100	  to use the correct value here.
101
102config DEBUG_UART_SHIFT
103	int "UART register shift"
104	depends on DEBUG_UART
105	default 0 if DEBUG_UART
106	help
107	  Some UARTs (notably ns16550) support different register layouts
108	  where the registers are spaced either as bytes, words or some other
109	  value. Use this value to specify the shift to use, where 0=byte
110	  registers, 2=32-bit word registers, etc.
111
112config SANDBOX_SERIAL
113	bool "Sandbox UART support"
114	depends on SANDBOX && DM
115	help
116	  Select this to enable a seral UART for sandbox. This is required to
117	  operate correctly, otherwise you will see no serial output from
118	  sandbox. The emulated UART will display to the console and console
119	  input will be fed into the UART. This allows you to interact with
120	  U-Boot.
121
122	  The operation of the console is controlled by the -t command-line
123	  flag. In raw mode, U-Boot sees all characters from the terminal
124	  before they are processed, including Ctrl-C. In cooked mode, Ctrl-C
125	  is processed by the terminal, and terminates U-Boot. Valid options
126	  are:
127
128	     -t raw-with-sigs	Raw mode, Ctrl-C will terminate U-Boot
129	     -t raw		Raw mode, Ctrl-C is processed by U-Boot
130	     -t cooked		Cooked mode, Ctrl-C terminates
131
132config UNIPHIER_SERIAL
133	bool "Support for UniPhier on-chip UART"
134	depends on ARCH_UNIPHIER && DM_SERIAL
135	help
136	  If you have a UniPhier based board and want to use the on-chip
137	  serial ports, say Y to this option. If unsure, say N.
138
139config X86_SERIAL
140	bool "Support for 16550 serial port on x86 machines"
141	depends on X86
142	default y
143	help
144	  Most x86 machines have a ns16550 UART or compatible. This can be
145	  enabled in the device tree with the correct input clock frequency
146	  provided (default 1843200). Enable this to obtain serial console
147	  output.
148
149endmenu
150