soc/intel/alderlake: Add ADL-P 4+4 with 28W TDP
[coreboot.git] / src / console / Kconfig
blob8efe2e47993b3795aea301972ed7d0e019e98218
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_AMD_SIMNOW
371         bool "AMD SimNow console output"
372         default n
373         depends on SOC_AMD_COMMON && !POST_IO
374         select CONSOLE_POST
375         help
376           Send coreboot debug output to IO ports for SimNow
378 config CONSOLE_OVERRIDE_LOGLEVEL
379         bool
380         help
381           Set to "y" when the platform overrides the loglevel by providing
382           a get_console_loglevel routine.
384 if !CONSOLE_OVERRIDE_LOGLEVEL
386 choice
387         prompt "Default console log level"
388         default DEFAULT_CONSOLE_LOGLEVEL_8 if CHROMEOS
389         default DEFAULT_CONSOLE_LOGLEVEL_7
391 config DEFAULT_CONSOLE_LOGLEVEL_8
392         bool "8: SPEW"
393         help
394           Way too many details.
395 config DEFAULT_CONSOLE_LOGLEVEL_7
396         bool "7: DEBUG"
397         help
398           Debug-level messages.
399 config DEFAULT_CONSOLE_LOGLEVEL_6
400         bool "6: INFO"
401         help
402           Informational messages.
403 config DEFAULT_CONSOLE_LOGLEVEL_5
404         bool "5: NOTICE"
405         help
406           Normal but significant conditions.
407 config DEFAULT_CONSOLE_LOGLEVEL_4
408         bool "4: WARNING"
409         help
410           Warning conditions.
411 config DEFAULT_CONSOLE_LOGLEVEL_3
412         bool "3: ERR"
413         help
414           Error conditions.
415 config DEFAULT_CONSOLE_LOGLEVEL_2
416         bool "2: CRIT"
417         help
418           Critical conditions.
419 config DEFAULT_CONSOLE_LOGLEVEL_1
420         bool "1: ALERT"
421         help
422           Action must be taken immediately.
423 config DEFAULT_CONSOLE_LOGLEVEL_0
424         bool "0: EMERG"
425         help
426           System is unusable.
428 endchoice
430 config DEFAULT_CONSOLE_LOGLEVEL
431         int
432         default 0 if DEFAULT_CONSOLE_LOGLEVEL_0
433         default 1 if DEFAULT_CONSOLE_LOGLEVEL_1
434         default 2 if DEFAULT_CONSOLE_LOGLEVEL_2
435         default 3 if DEFAULT_CONSOLE_LOGLEVEL_3
436         default 4 if DEFAULT_CONSOLE_LOGLEVEL_4
437         default 5 if DEFAULT_CONSOLE_LOGLEVEL_5
438         default 6 if DEFAULT_CONSOLE_LOGLEVEL_6
439         default 7 if DEFAULT_CONSOLE_LOGLEVEL_7
440         default 8 if DEFAULT_CONSOLE_LOGLEVEL_8
441         help
442           Map the log level config names to an integer.
444 endif
446 config CONSOLE_USE_LOGLEVEL_PREFIX
447         bool "Use loglevel prefix to indicate line loglevel"
448         default y
449         help
450           When enabled, if the code contains a:
451           `printk(BIOS_DEBUG, "This is a debug message!\n")`,
452           it will show up as:
453           `[DEBUG]  This is a debug message!`
455 config CONSOLE_USE_ANSI_ESCAPES
456         bool "Use ANSI escape sequences for console highlighting"
457         default y if !CONSOLE_AMD_SIMNOW
458         help
459           If enabled, certain consoles (e.g. UART) that are meant to be read on
460           a terminal will use ANSI escape sequences (like `ESC [1m`) to
461           highlight lines based on their log level. Disable this if your
462           terminal does not support ANSI escape sequences.
464 config NO_POST
465         bool "Don't show any POST codes"
466         default n
468 config CMOS_POST
469         bool "Store post codes in CMOS for debugging"
470         depends on !NO_POST && PC80_SYSTEM
471         default n
472         help
473           If enabled, coreboot will store post codes in CMOS and switch between
474           two offsets on each boot so the last post code in the previous boot
475           can be retrieved.  This uses 3 bytes of CMOS.
477 config CMOS_POST_OFFSET
478         hex "Offset into CMOS to store POST codes"
479         depends on CMOS_POST
480         default 0x0
481         help
482           If CMOS_POST is enabled then an offset into CMOS must be provided.
483           If CONFIG_HAVE_OPTION_TABLE is enabled then it will use the value
484           defined in the mainboard option table.
486 config CONSOLE_POST
487         bool "Show POST codes on the debug console"
488         depends on !NO_POST
489         default n
490         help
491           If enabled, coreboot will additionally print POST codes (which are
492           usually displayed using a so-called "POST card" ISA/PCI/PCI-E
493           device) on the debug console.
495 config POST_DEVICE
496         bool "Send POST codes to an external device"
497         depends on !NO_POST
498         default y
500 choice
501         prompt "Device to send POST codes to"
502         depends on POST_DEVICE
503         default POST_DEVICE_LPC if DEFAULT_POST_ON_LPC
504         default POST_DEVICE_NONE
506 config POST_DEVICE_NONE
507         bool "None"
508 config POST_DEVICE_LPC
509         bool "LPC"
510         depends on PCI
511 config POST_DEVICE_PCI_PCIE
512         bool "PCI/PCIe"
513         depends on PCI
514 endchoice
516 config DEFAULT_POST_ON_LPC
517         bool
518         default n
520 config POST_IO
521         bool "Send POST codes to an IO port"
522         depends on PC80_SYSTEM && !NO_POST
523         default y
524         help
525           If enabled, POST codes will be written to an IO port.
527 config POST_IO_PORT
528         depends on POST_IO
529         hex "IO port for POST codes"
530         default 0x80
531         help
532           POST codes on x86 are typically written to the LPC bus on port
533           0x80. However, it may be desirable to change the port number
534           depending on the presence of coprocessors/microcontrollers or if the
535           platform does not support IO in the conventional x86 manner.
537 config NO_EARLY_BOOTBLOCK_POSTCODES
538         def_bool n
539         help
540           Some chipsets require that the routing for the port 80h POST
541           code be configured before any POST codes are sent out.  If this is
542           not done, the system can hang on the first POST code.  This
543           initialization can be done in the boot block, but there are a couple
544           of POST codes that go out before the chipset's C bootblock
545           initialization can happen.  This option suppresses all postcodes in
546           the early assembly code.
548 config HWBASE_DEBUG_CB
549         bool
550         default y if DEFAULT_CONSOLE_LOGLEVEL_7 || DEFAULT_CONSOLE_LOGLEVEL_8
551         default n
553 config HWBASE_DEBUG_NULL
554         def_bool y
555         depends on !HWBASE_DEBUG_CB
557 endmenu