payloads/edk2: Disable the CPU Timer Lib unless supported
[coreboot.git] / src / console / Kconfig
blobc6aec18b090e5c0e49fe6ebc2e503e2042b9330b
1 menu "Console"
3 config NO_BOOTBLOCK_CONSOLE
4         bool
6 config BOOTBLOCK_CONSOLE
7         bool "Enable early (bootblock) console output."
8         depends on !NO_BOOTBLOCK_CONSOLE
9         default y
10         help
11           Use console during the bootblock if supported
13 config POSTCAR_CONSOLE
14         bool "Enable console output during postcar."
15         depends on POSTCAR_STAGE
16         default y
17         help
18           Use console during the postcar if supported
20 config SQUELCH_EARLY_SMP
21         bool "Squelch AP CPUs from early console."
22         default y
23         depends on SMP
24         help
25           When selected only the BSP CPU will output to early console.
27           Console drivers have unpredictable behaviour if multiple threads
28           attempt to share the same resources without a spinlock.
30           If unsure, say Y.
32 config CONSOLE_SERIAL
33         bool "Serial port console output"
34         default y
35         depends on DRIVERS_UART
36         help
37           Send coreboot debug output to a serial port.
39           The type of serial port driver selected based on your configuration is
40           shown on the following menu line. Supporting multiple different types
41           of UARTs in one build is not supported.
43 config FIXED_UART_FOR_CONSOLE
44         bool
45         help
46           Select to remove the prompt from UART_FOR_CONSOLE in case a
47           specific UART has to be used (e.g. when the platform code
48           performs dangerous configurations).
50 if CONSOLE_SERIAL || CONSOLE_CBMEM_DUMP_TO_UART
52         comment "I/O mapped, 8250-compatible"
53         depends on DRIVERS_UART_8250IO
55         comment "memory mapped, 8250-compatible"
56         depends on DRIVERS_UART_8250MEM
58         comment "device-specific UART"
59         depends on HAVE_UART_SPECIAL
61 config OVERRIDE_UART_FOR_CONSOLE
62         bool
63         help
64           Set to "y" when the platform overrides the index of uart port by providing
65           a get_uart_for_console routine.
67 if !OVERRIDE_UART_FOR_CONSOLE
69 config UART_FOR_CONSOLE
70         int
71         prompt "Index for UART port to use for console" if !FIXED_UART_FOR_CONSOLE
72         default 0
73         help
74           Select an I/O port to use for serial console:
75             0 = 0x3f8, 1 = 0x2f8, 2 = 0x3e8, 3 = 0x2e8
77 # FIXME: Early programming in romstage is incorrect as we should
78 # program different LDN to actually change the physical port.
79 config TTYS0_BASE
80         hex
81         depends on DRIVERS_UART
82         default 0x3f8 if UART_FOR_CONSOLE = 0
83         default 0x2f8 if UART_FOR_CONSOLE = 1
84         default 0x3e8 if UART_FOR_CONSOLE = 2
85         default 0x2e8 if UART_FOR_CONSOLE = 3
86         help
87           Map the COM port number to the respective I/O port.
89 comment "Serial port base address = 0x3f8"
90 depends on DRIVERS_UART_8250IO && UART_FOR_CONSOLE = 0
91 comment "Serial port base address = 0x2f8"
92 depends on DRIVERS_UART_8250IO && UART_FOR_CONSOLE = 1
93 comment "Serial port base address = 0x3e8"
94 depends on DRIVERS_UART_8250IO && UART_FOR_CONSOLE = 2
95 comment "Serial port base address = 0x2e8"
96 depends on DRIVERS_UART_8250IO && UART_FOR_CONSOLE = 3
98 endif
100 config UART_OVERRIDE_BAUDRATE
101         bool
102         help
103           Set to "y" when the platform overrides the baudrate by providing
104           a get_uart_baudrate routine.
106 if !UART_OVERRIDE_BAUDRATE
108 choice
109         prompt "Baud rate"
110         default CONSOLE_SERIAL_115200
112 config CONSOLE_SERIAL_921600
113         bool "921600"
114         help
115           Set serial port Baud rate to 921600.
116 config CONSOLE_SERIAL_460800
117         bool "460800"
118         help
119           Set serial port Baud rate to 460800.
120 config CONSOLE_SERIAL_230400
121         bool "230400"
122         help
123           Set serial port Baud rate to 230400.
124 config CONSOLE_SERIAL_115200
125         bool "115200"
126         help
127           Set serial port Baud rate to 115200.
128 config CONSOLE_SERIAL_57600
129         bool "57600"
130         help
131           Set serial port Baud rate to 57600.
132 config CONSOLE_SERIAL_38400
133         bool "38400"
134         help
135           Set serial port Baud rate to 38400.
136 config CONSOLE_SERIAL_19200
137         bool "19200"
138         help
139           Set serial port Baud rate to 19200.
140 config CONSOLE_SERIAL_9600
141         bool "9600"
142         help
143           Set serial port Baud rate to 9600.
145 endchoice
147 #FIXME(dhendrix): Change name to SERIAL_BAUD? (Stefan sayz: yes!!)
148 config TTYS0_BAUD
149         int
150         default 921600 if CONSOLE_SERIAL_921600
151         default 460800 if CONSOLE_SERIAL_460800
152         default 230400 if CONSOLE_SERIAL_230400
153         default 115200 if CONSOLE_SERIAL_115200
154         default 57600 if CONSOLE_SERIAL_57600
155         default 38400 if CONSOLE_SERIAL_38400
156         default 19200 if CONSOLE_SERIAL_19200
157         default 9600 if CONSOLE_SERIAL_9600
158         help
159           Map the Baud rates to an integer.
161 endif
163 # TODO: Allow user-friendly selection of settings other than 8n1.
164 config TTYS0_LCS
165         int
166         default 3
167         depends on DRIVERS_UART_8250IO || DRIVERS_UART_8250MEM
169 endif # CONSOLE_SERIAL
171 config SPKMODEM
172         bool "spkmodem (console on speaker) console output"
173         default n
174         depends on ARCH_X86
175         help
176           Send coreboot debug output through speaker
178 config CONSOLE_USB
179         bool "USB dongle console output"
180         depends on USBDEBUG
181         default y
182         help
183           Send coreboot debug output to USB.
185           Configuration for USB hardware is under menu Generic Drivers.
187 # TODO: Deps?
188 # TODO: Improve description.
189 config CONSOLE_NE2K
190         bool "Network console over NE2000 compatible Ethernet adapter"
191         default n
192         depends on PCI
193         help
194           Send coreboot debug output to a Ethernet console, it works
195           same way as Linux netconsole, packets are received to UDP
196           port 6666 on IP/MAC specified with options below.
197           Use following netcat command: nc -u -l -p 6666
199 config CONSOLE_NE2K_DST_MAC
200         depends on CONSOLE_NE2K
201         string "Destination MAC address of remote system"
202         default "00:13:d4:76:a2:ac"
203         help
204           Type in either MAC address of logging system or MAC address
205           of the router.
207 config CONSOLE_NE2K_DST_IP
208         depends on CONSOLE_NE2K
209         string "Destination IP of logging system"
210         default "10.0.1.27"
211         help
212           This is IP address of the system running for example
213           netcat command to dump the packets.
215 config CONSOLE_NE2K_SRC_IP
216         depends on CONSOLE_NE2K
217         string "IP address of coreboot system"
218         default "10.0.1.253"
219         help
220           This is the IP of the coreboot system
222 config CONSOLE_NE2K_IO_PORT
223         depends on CONSOLE_NE2K
224         hex "NE2000 adapter fixed IO port address"
225         default 0xe00
226         help
227           This is the IO port address for the IO port
228           on the card, please select some non-conflicting region,
229           32 bytes of IO spaces will be used (and align on 32 bytes
230           boundary, qemu needs broader align)
232 config CONSOLE_CBMEM
233         bool "Send console output to a CBMEM buffer"
234         default y
235         help
236           Enable this to save the console output in a CBMEM buffer. This would
237           allow to see coreboot console output from Linux space.
239 if CONSOLE_CBMEM
241 config CONSOLE_CBMEM_BUFFER_SIZE
242         hex "Room allocated for console output in CBMEM"
243         default 0x20000
244         help
245           Space allocated for console output storage in CBMEM. The default
246           value (128K or 0x20000 bytes) is large enough to accommodate
247           even the BIOS_SPEW level.
249 config CONSOLE_CBMEM_DUMP_TO_UART
250         depends on !CONSOLE_SERIAL
251         bool "Dump CBMEM console on resets"
252         default n
253         help
254           Enable this to have CBMEM console buffer contents dumped on the
255           serial output in case serial console is disabled and the device
256           resets itself while trying to boot the payload.
258 config CONSOLE_CBMEM_PRINT_PRE_BOOTBLOCK_CONTENTS
259         bool
260         help
261           Pre-bootblock stages (i.e., VBOOT_STARTS_BEFORE_BOOTBLOCK) might not
262           have the ability to log to the UART, so their console messages are
263           inaccessible until the boot processes gets into the payload or OS.
264           This feature will dump the pre-bootblock CBMEM console immediately
265           after the bootblock console is initialized.
266 endif
268 config CONSOLE_SPI_FLASH
269         bool "SPI Flash console output"
270         default n
271         depends on BOOT_DEVICE_SPI_FLASH
272         select BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY if !COMMON_CBFS_SPI_WRAPPER
273         help
274           Send coreboot debug output to the SPI Flash in the FMAP CONSOLE area
276           This option can cause premature wear on the SPI flash and should not
277           be used as a normal means of debugging. It is only to be enabled and
278           used when porting a new motherboard which has no other console
279           available (no UART, no POST, no cbmem access(non bootable)). Since
280           a non bootable machine will require the use of an external SPI Flash
281           programmer, the developer can grab the console log at the same time.
283           The flash console will not be erased on reboot, so once it is full,
284           the flashconsole driver will stop writing to it. This is to avoid
285           wear on the flash, and to avoid erasing sectors (which may freeze
286           the SPI controller on skylake).
288           The 'CONSOLE' area can be extracted from the FMAP with :
289           cbfstool rom.bin read -r CONSOLE -f console.log
291 config CONSOLE_SPI_FLASH_BUFFER_SIZE
292         hex "Room allocated for console output in FMAP"
293         default 0x20000
294         depends on CONSOLE_SPI_FLASH
295         help
296           Space allocated for console output storage in FMAP. The default
297           value (128K or 0x20000 bytes) is large enough to accommodate
298           even the BIOS_SPEW level.
300 config CONSOLE_I2C_SMBUS
301         bool "SMBus console output"
302         depends on SOUTHBRIDGE_INTEL_COMMON_SMBUS
303         help
304           Send coreboot debug output to the SMBus.
305           The output can be read with an I2C slave device connected
306           the SMBus. Please refer to the technotes section of the
307           coreboot documentation for more details.
309 if CONSOLE_I2C_SMBUS
310         comment "Set logging device address and data register address"
312 config CONSOLE_I2C_SMBUS_SLAVE_ADDRESS
313         hex "I2C slave address of the logging device"
314         default 0x48 if SC16IS7XX_INIT
315         help
316           I2C address of the device which logs the data.
318 config CONSOLE_I2C_SMBUS_SLAVE_DATA_REGISTER
319         hex "Data register address of the I2C logging device"
320         default 0x00 if SC16IS7XX_INIT
321         help
322           This an 8-bit data register.
324 config SC16IS7XX_INIT
325         bool "Initialize SC16IS7XX I2C to UART converter chip"
326         help
327           SC16IS7XX is a slave I2C to UART converter chip. Enabling
328           this option will initialize the chip.
330           The default I2C slave address value 0x48 is the address of
331           SC16IS7XX I2C to UART converter chip when the A1 and A0 pins
332           are set to Vcc.
334           The default data register address value 0x00 is the data
335           register address of SC16IS7XX I2C to UART converter chip.
337 endif # CONSOLE_I2C_SMBUS
339 config CONSOLE_QEMU_DEBUGCON
340         bool "QEMU debug console output"
341         depends on CPU_QEMU_X86
342         default y
343         help
344           Send coreboot debug output to QEMU's isa-debugcon device:
346           qemu-system-x86_64 \
347             -chardev file,id=debugcon,path=/dir/file.log \
348             -device isa-debugcon,iobase=0x402,chardev=debugcon
350 config CONSOLE_QEMU_DEBUGCON_PORT
351         hex "QEMU debug console port"
352         depends on CONSOLE_QEMU_DEBUGCON
353         default 0x402
355 config EM100PRO_SPI_CONSOLE
356         bool "EM100Pro SPI debug console output"
357         depends on HAVE_EM100PRO_SPI_CONSOLE_SUPPORT && !DEBUG_SPI_FLASH
358         help
359           Enable support for the debug console on the Dediprog EM100Pro.
360           This is currently working only in ramstage due to how the spi
361           drivers are written.
363 config CONSOLE_SYSTEM76_EC
364         bool "System76 EC console output"
365         default n
366         depends on EC_SYSTEM76_EC
367         help
368           Send coreboot debug output to a System76 embedded controller.
370 config CONSOLE_OVERRIDE_LOGLEVEL
371         bool
372         help
373           Set to "y" when the platform overrides the loglevel by providing
374           a get_console_loglevel routine.
376 if !CONSOLE_OVERRIDE_LOGLEVEL
378 choice
379         prompt "Default console log level"
380         default DEFAULT_CONSOLE_LOGLEVEL_8 if CHROMEOS
381         default DEFAULT_CONSOLE_LOGLEVEL_7
383 config DEFAULT_CONSOLE_LOGLEVEL_8
384         bool "8: SPEW"
385         help
386           Way too many details.
387 config DEFAULT_CONSOLE_LOGLEVEL_7
388         bool "7: DEBUG"
389         help
390           Debug-level messages.
391 config DEFAULT_CONSOLE_LOGLEVEL_6
392         bool "6: INFO"
393         help
394           Informational messages.
395 config DEFAULT_CONSOLE_LOGLEVEL_5
396         bool "5: NOTICE"
397         help
398           Normal but significant conditions.
399 config DEFAULT_CONSOLE_LOGLEVEL_4
400         bool "4: WARNING"
401         help
402           Warning conditions.
403 config DEFAULT_CONSOLE_LOGLEVEL_3
404         bool "3: ERR"
405         help
406           Error conditions.
407 config DEFAULT_CONSOLE_LOGLEVEL_2
408         bool "2: CRIT"
409         help
410           Critical conditions.
411 config DEFAULT_CONSOLE_LOGLEVEL_1
412         bool "1: ALERT"
413         help
414           Action must be taken immediately.
415 config DEFAULT_CONSOLE_LOGLEVEL_0
416         bool "0: EMERG"
417         help
418           System is unusable.
420 endchoice
422 config DEFAULT_CONSOLE_LOGLEVEL
423         int
424         default 0 if DEFAULT_CONSOLE_LOGLEVEL_0
425         default 1 if DEFAULT_CONSOLE_LOGLEVEL_1
426         default 2 if DEFAULT_CONSOLE_LOGLEVEL_2
427         default 3 if DEFAULT_CONSOLE_LOGLEVEL_3
428         default 4 if DEFAULT_CONSOLE_LOGLEVEL_4
429         default 5 if DEFAULT_CONSOLE_LOGLEVEL_5
430         default 6 if DEFAULT_CONSOLE_LOGLEVEL_6
431         default 7 if DEFAULT_CONSOLE_LOGLEVEL_7
432         default 8 if DEFAULT_CONSOLE_LOGLEVEL_8
433         help
434           Map the log level config names to an integer.
436 endif
438 config CONSOLE_USE_LOGLEVEL_PREFIX
439         bool "Use loglevel prefix to indicate line loglevel"
440         default y
441         help
442           When enabled, if the code contains a:
443           `printk(BIOS_DEBUG, "This is a debug message!\n")`,
444           it will show up as:
445           `[DEBUG]  This is a debug message!`
447 config CONSOLE_USE_ANSI_ESCAPES
448         bool "Use ANSI escape sequences for console highlighting"
449         default y
450         help
451           If enabled, certain consoles (e.g. UART) that are meant to be read on
452           a terminal will use ANSI escape sequences (like `ESC [1m`) to
453           highlight lines based on their log level. Disable this if your
454           terminal does not support ANSI escape sequences.
456 config NO_POST
457         bool "Don't show any POST codes"
458         default n
460 config CMOS_POST
461         bool "Store post codes in CMOS for debugging"
462         depends on !NO_POST && PC80_SYSTEM
463         default n
464         help
465           If enabled, coreboot will store post codes in CMOS and switch between
466           two offsets on each boot so the last post code in the previous boot
467           can be retrieved.  This uses 3 bytes of CMOS.
469 config CMOS_POST_OFFSET
470         hex "Offset into CMOS to store POST codes"
471         depends on CMOS_POST
472         default 0x0
473         help
474           If CMOS_POST is enabled then an offset into CMOS must be provided.
475           If CONFIG_HAVE_OPTION_TABLE is enabled then it will use the value
476           defined in the mainboard option table.
478 config CONSOLE_POST
479         bool "Show POST codes on the debug console"
480         depends on !NO_POST
481         default n
482         help
483           If enabled, coreboot will additionally print POST codes (which are
484           usually displayed using a so-called "POST card" ISA/PCI/PCI-E
485           device) on the debug console.
487 config POST_DEVICE
488         bool "Send POST codes to an external device"
489         depends on !NO_POST
490         default y
492 choice
493         prompt "Device to send POST codes to"
494         depends on POST_DEVICE
495         default POST_DEVICE_LPC if DEFAULT_POST_ON_LPC
496         default POST_DEVICE_NONE
498 config POST_DEVICE_NONE
499         bool "None"
500 config POST_DEVICE_LPC
501         bool "LPC"
502         depends on PCI
503 config POST_DEVICE_PCI_PCIE
504         bool "PCI/PCIe"
505         depends on PCI
506 endchoice
508 config DEFAULT_POST_ON_LPC
509         bool
510         default n
512 config POST_IO
513         bool "Send POST codes to an IO port"
514         depends on PC80_SYSTEM && !NO_POST
515         default y
516         help
517           If enabled, POST codes will be written to an IO port.
519 config POST_IO_PORT
520         depends on POST_IO
521         hex "IO port for POST codes"
522         default 0x80
523         help
524           POST codes on x86 are typically written to the LPC bus on port
525           0x80. However, it may be desirable to change the port number
526           depending on the presence of coprocessors/microcontrollers or if the
527           platform does not support IO in the conventional x86 manner.
529 config NO_EARLY_BOOTBLOCK_POSTCODES
530         def_bool n
531         help
532           Some chipsets require that the routing for the port 80h POST
533           code be configured before any POST codes are sent out.  If this is
534           not done, the system can hang on the first POST code.  This
535           initialization can be done in the boot block, but there are a couple
536           of POST codes that go out before the chipset's C bootblock
537           initialization can happen.  This option suppresses all postcodes in
538           the early assembly code.
540 config HWBASE_DEBUG_CB
541         bool
542         default y if DEFAULT_CONSOLE_LOGLEVEL_7 || DEFAULT_CONSOLE_LOGLEVEL_8
543         default n
545 config HWBASE_DEBUG_NULL
546         def_bool y
547         depends on !HWBASE_DEBUG_CB
549 endmenu