Drop the USE_PRINTK_IN_CAR option. It's a bogus decision to make for any user /
[coreboot.git] / src / Kconfig
1 ##
2 ## This file is part of the coreboot project.
3 ##
4 ## Copyright (C) 2009-2010 coresystems GmbH
5 ##
6 ## This program is free software; you can redistribute it and/or modify
7 ## it under the terms of the GNU General Public License as published by
8 ## the Free Software Foundation; version 2 of the License.
9 ##
10 ## This program is distributed in the hope that it will be useful,
11 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 ## GNU General Public License for more details.
14 ##
15 ## You should have received a copy of the GNU General Public License
16 ## along with this program; if not, write to the Free Software
17 ## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
18 ##
19
20 mainmenu "Coreboot Configuration"
21
22 menu "General setup"
23
24 config EXPERT
25         bool "Expert mode"
26         help
27           This allows you to select certain advanced configuration options.
28
29           Warning: Only enable this option if you really know what you are
30           doing! You have been warned!
31
32 config LOCALVERSION
33         string "Local version string"
34         help
35           Append an extra string to the end of the coreboot version.
36
37           This can be useful if, for instance, you want to append the
38           respective board's hostname or some other identifying string to
39           the coreboot version number, so that you can easily distinguish
40           boot logs of different boards from each other.
41
42 config CBFS_PREFIX
43         string "CBFS prefix to use"
44         default "fallback"
45         help
46           Select the prefix to all files put into the image. It's "fallback"
47           by default, "normal" is a common alternative.
48
49 choice
50         prompt "Compiler"
51         default COMPILER_GCC
52         help
53           This option allows you to select the compiler used for building
54           coreboot.
55
56 config COMPILER_GCC
57         bool "GCC"
58 config COMPILER_LLVM_CLANG
59         bool "LLVM/clang"
60 endchoice
61
62 config SCANBUILD_ENABLE
63         bool "Build with scan-build for static analysis"
64         default n
65         help
66           Changes the build process to scan-build is used.
67           Requires scan-build in path.
68
69 config SCANBUILD_REPORT_LOCATION
70         string "Directory to put scan-build report in"
71         default ""
72         depends on SCANBUILD_ENABLE
73         help
74           Where the scan-build report should be stored
75
76 config CCACHE
77         bool "ccache"
78         default n
79         help
80           Enables the use of ccache for faster builds.
81           Requires ccache in path.
82
83 config USE_OPTION_TABLE
84         bool "Use CMOS for configuration values"
85         default n
86         depends on HAVE_OPTION_TABLE
87         help
88           Enable this option if coreboot shall read options from the "CMOS"
89           NVRAM instead of using hard coded values.
90
91 endmenu
92
93 source src/mainboard/Kconfig
94 source src/arch/i386/Kconfig
95
96 menu "Chipset"
97
98 comment "CPU"
99 source src/cpu/Kconfig
100 comment "Northbridge"
101 source src/northbridge/Kconfig
102 comment "Southbridge"
103 source src/southbridge/Kconfig
104 comment "Super I/O"
105 source src/superio/Kconfig
106 comment "Devices"
107 source src/devices/Kconfig
108
109 endmenu
110
111 menu "Generic Drivers"
112 source src/drivers/Kconfig
113 endmenu
114
115 config PCI_BUS_SEGN_BITS
116         int
117         default 0
118
119 config MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID
120         hex
121         default 0x0
122
123 config MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID
124         hex
125         default 0x0
126
127 config CPU_ADDR_BITS
128         int
129         default 36
130
131 config LOGICAL_CPUS
132         bool
133         default y
134
135 config PCI_ROM_RUN
136         bool
137         default n
138
139 config HEAP_SIZE
140         hex
141         default 0x4000
142
143 config MAX_CPUS
144         int
145         default 1
146
147 config MMCONF_SUPPORT_DEFAULT
148         bool
149         default n
150
151 config MMCONF_SUPPORT
152         bool
153         default n
154
155 config ATI_RAGE_XL
156         bool
157
158 source src/console/Kconfig
159
160 config HAVE_ACPI_RESUME
161         bool
162         default n
163
164 config HAVE_ACPI_SLIC
165         bool
166         default n
167
168 config ACPI_SSDTX_NUM
169         int
170         default 0
171
172 config HAVE_HARD_RESET
173         bool
174         default y if BOARD_HAS_HARD_RESET
175         default n
176         help
177           This variable specifies whether a given board has a hard_reset
178           function, no matter if it's provided by board code or chipset code.
179
180 config HAVE_INIT_TIMER
181         bool
182         default n if UDELAY_IO
183         default y
184
185 config HAVE_MAINBOARD_RESOURCES
186         bool
187         default n
188
189 config USE_OPTION_TABLE
190         bool
191         default n
192
193 config HAVE_OPTION_TABLE
194         bool
195         default n
196         help
197           This variable specifies whether a given board has a cmos.layout
198           file containing NVRAM/CMOS bit definitions.
199           It defaults to 'n' but can be selected in mainboard/*/Kconfig.
200
201 config PIRQ_ROUTE
202         bool
203         default n
204
205 config HAVE_SMI_HANDLER
206         bool
207         default n
208
209 config PCI_IO_CFG_EXT
210         bool
211         default n
212
213 config IOAPIC
214         bool
215         default n
216
217 # TODO: Can probably be removed once all chipsets have kconfig options for it.
218 config VIDEO_MB
219         int
220         default 0
221
222 config USE_WATCHDOG_ON_BOOT
223         bool
224         default n
225
226 config VGA
227         bool
228         default n
229         help
230           Build board-specific VGA code.
231
232 config GFXUMA
233         bool
234         default n
235         help
236           Enable Unified Memory Architecture for graphics.
237
238 # TODO
239 # menu "Drivers"
240 #
241 # endmenu
242
243 #TODO Remove this option or make it useful.
244 config HAVE_LOW_TABLES
245         bool
246         default y
247         help
248           This Option is unused in the code.  Since two boards try to set it to
249           'n', they may be broken.  We either need to make the option useful or
250           get rid of it.  The broken boards are:
251           asus/m2v-mx_se
252           supermicro/h8dme
253
254 config HAVE_HIGH_TABLES
255         bool
256         default y
257         help
258           This variable specifies whether a given northbridge has high table
259           support.
260           It is set in northbridge/*/Kconfig.
261           Whether or not the high tables are actually written by coreboot is
262           configurable by the user via WRITE_HIGH_TABLES.
263
264 config HAVE_ACPI_TABLES
265         bool
266         help
267           This variable specifies whether a given board has ACPI table support.
268           It is usually set in mainboard/*/Kconfig.
269           Whether or not the ACPI tables are actually generated by coreboot
270           is configurable by the user via GENERATE_ACPI_TABLES.
271
272 config HAVE_MP_TABLE
273         bool
274         help
275           This variable specifies whether a given board has MP table support.
276           It is usually set in mainboard/*/Kconfig.
277           Whether or not the MP table is actually generated by coreboot
278           is configurable by the user via GENERATE_MP_TABLE.
279
280 config HAVE_PIRQ_TABLE
281         bool
282         help
283           This variable specifies whether a given board has PIRQ table support.
284           It is usually set in mainboard/*/Kconfig.
285           Whether or not the PIRQ table is actually generated by coreboot
286           is configurable by the user via GENERATE_PIRQ_TABLE.
287
288 #These Options are here to avoid "undefined" warnings.
289 #The actual selection and help texts are in the following menu.
290
291 config GENERATE_ACPI_TABLES
292         bool
293         default HAVE_ACPI_TABLES
294
295 config GENERATE_MP_TABLE
296         bool
297         default HAVE_MP_TABLE
298
299 config GENERATE_PIRQ_TABLE
300         bool
301         default HAVE_PIRQ_TABLE
302
303 config WRITE_HIGH_TABLES
304         bool
305         default HAVE_HIGH_TABLES
306
307 menu "System tables"
308
309 config WRITE_HIGH_TABLES
310         bool "Write 'high' tables to avoid being overwritten in F segment"
311         depends on HAVE_HIGH_TABLES
312         default y
313
314 config MULTIBOOT
315         bool "Generate Multiboot tables (for GRUB2)"
316         default y
317
318 config GENERATE_ACPI_TABLES
319         depends on HAVE_ACPI_TABLES
320         bool "Generate ACPI tables"
321         default y
322         help
323           Generate ACPI tables for this board.
324
325           If unsure, say Y.
326
327 config GENERATE_MP_TABLE
328         depends on HAVE_MP_TABLE
329         bool "Generate an MP table"
330         default y
331         help
332           Generate an MP table (conforming to the Intel MultiProcessor
333           specification 1.4) for this board.
334
335           If unsure, say Y.
336
337 config GENERATE_PIRQ_TABLE
338         depends on HAVE_PIRQ_TABLE
339         bool "Generate a PIRQ table"
340         default y
341         help
342           Generate a PIRQ table for this board.
343
344           If unsure, say Y.
345
346 endmenu
347
348 menu "Payload"
349
350 choice
351         prompt "Add a payload"
352         default PAYLOAD_NONE
353
354 config PAYLOAD_NONE
355         bool "None"
356         help
357           Select this option if you want to create an "empty" coreboot
358           ROM image for a certain mainboard, i.e. a coreboot ROM image
359           which does not yet contain a payload.
360
361           For such an image to be useful, you have to use 'cbfstool'
362           to add a payload to the ROM image later.
363
364 config PAYLOAD_ELF
365         bool "An ELF executable payload"
366         help
367           Select this option if you have a payload image (an ELF file)
368           which coreboot should run as soon as the basic hardware
369           initialization is completed.
370
371           You will be able to specify the location and file name of the
372           payload image later.
373
374 endchoice
375
376 config FALLBACK_PAYLOAD_FILE
377         string "Payload path and filename"
378         depends on PAYLOAD_ELF
379         default "payload.elf"
380         help
381           The path and filename of the ELF executable file to use as payload.
382
383 # TODO: Defined if no payload? Breaks build?
384 config COMPRESSED_PAYLOAD_LZMA
385         bool "Use LZMA compression for payloads"
386         default y
387         depends on PAYLOAD_ELF
388         help
389           In order to reduce the size payloads take up in the ROM chip
390           coreboot can compress them using the LZMA algorithm.
391
392 config COMPRESSED_PAYLOAD_NRV2B
393         bool
394         default n
395
396 endmenu
397
398 menu "VGA BIOS"
399
400 config VGA_BIOS
401         bool "Add a VGA BIOS image"
402         help
403           Select this option if you have a VGA BIOS image that you would
404           like to add to your ROM.
405
406           You will be able to specify the location and file name of the
407           image later.
408
409 config FALLBACK_VGA_BIOS_FILE
410         string "VGA BIOS path and filename"
411         depends on VGA_BIOS
412         default "vgabios.bin"
413         help
414           The path and filename of the file to use as VGA BIOS.
415
416 config FALLBACK_VGA_BIOS_ID
417         string "VGA device PCI IDs"
418         depends on VGA_BIOS
419         default "1106,3230"
420         help
421           The comma-separated PCI vendor and device ID that would associate
422           your VGA BIOS to your video card.
423
424           Example: 1106,3230
425
426           In the above example 1106 is the PCI vendor ID (in hex, but without
427           the "0x" prefix) and 3230 specifies the PCI device ID of the
428           video card (also in hex, without "0x" prefix).
429
430 config INTEL_MBI
431         bool "Add an MBI image"
432         depends on NORTHBRIDGE_INTEL_I82830
433         help
434           Select this option if you have an Intel MBI image that you would
435           like to add to your ROM.
436
437           You will be able to specify the location and file name of the
438           image later.
439
440 config FALLBACK_MBI_FILE
441         string "Intel MBI path and filename"
442         depends on INTEL_MBI
443         default "mbi.bin"
444         help
445           The path and filename of the file to use as VGA BIOS.
446
447 endmenu
448
449 menu "Bootsplash"
450         depends on PCI_OPTION_ROM_RUN_YABEL
451
452 config BOOTSPLASH
453         prompt "Show graphical bootsplash"
454         bool
455         depends on PCI_OPTION_ROM_RUN_YABEL
456         help
457           This option shows a graphical bootsplash screen. The grapics are
458           loaded from the CBFS file bootsplash.jpg.
459
460 config FALLBACK_BOOTSPLASH_FILE
461         string "Bootsplash path and filename"
462         depends on BOOTSPLASH
463         default "bootsplash.jpg"
464         help
465           The path and filename of the file to use as graphical bootsplash
466           screen. The file format has to be jpg.
467
468 # TODO: Turn this into a "choice".
469 config FRAMEBUFFER_VESA_MODE
470         prompt "VESA framebuffer video mode"
471         hex
472         default 0x117
473         depends on BOOTSPLASH
474         help
475           This option sets the resolution used for the coreboot framebuffer and
476           bootsplash screen. Set to 0x117 for 1024x768x16. A diligent soul will
477           some day make this a "choice".
478
479 config COREBOOT_KEEP_FRAMEBUFFER
480         prompt "Keep VESA framebuffer"
481         bool
482         depends on BOOTSPLASH
483         help
484           This option keeps the framebuffer mode set after coreboot finishes
485           execution. If this option is enabled, coreboot will pass a
486           framebuffer entry in its coreboot table and the payload will need a
487           framebuffer driver. If this option is disabled, coreboot will switch
488           back to text mode before handing control to a payload.
489
490 endmenu
491
492 menu "Debugging"
493
494 # TODO: Better help text and detailed instructions.
495 config GDB_STUB
496         bool "GDB debugging support"
497         default y
498         help
499           If enabled, you will be able to set breakpoints for gdb debugging.
500           See src/arch/i386/lib/c_start.S for details.
501
502 config DEBUG_RAM_SETUP
503         bool "Output verbose RAM init debug messages"
504         default n
505         depends on (NORTHBRIDGE_AMD_AMDFAM10 \
506                  || NORTHBRIDGE_AMD_AMDK8 \
507                  || NORTHBRIDGE_VIA_CN700 \
508                  || NORTHBRIDGE_VIA_CX700 \
509                  || NORTHBRIDGE_VIA_VX800 \
510                  || NORTHBRIDGE_INTEL_E7501 \
511                  || NORTHBRIDGE_INTEL_I440BX \
512                  || NORTHBRIDGE_INTEL_I82810 \
513                  || NORTHBRIDGE_INTEL_I82830 \
514                  || NORTHBRIDGE_INTEL_I945)
515         help
516           This option enables additional RAM init related debug messages.
517           It is recommended to enable this when debugging issues on your
518           board which might be RAM init related.
519
520           Note: This option will increase the size of the coreboot image.
521
522           If unsure, say N.
523
524 config DEBUG_PIRQ
525         bool "Check PIRQ table consistency"
526         default n
527         depends on GENERATE_PIRQ_TABLE
528         help
529           If unsure, say N.
530
531 config DEBUG_SMBUS
532         bool "Output verbose SMBus debug messages"
533         default n
534         depends on (SOUTHBRIDGE_VIA_VT8237R \
535                  || NORTHBRIDGE_VIA_VX800 \
536                  || NORTHBRIDGE_VIA_CX700 \
537                  || NORTHBRIDGE_AMD_AMDK8 \
538                  || NORTHBRIDGE_AMD_AMDFAM10 \
539                  || BOARD_LIPPERT_SPACERUNNER_LX \
540                  || SOUTHBRIDGE_VIA_VT8231)
541         help
542           This option enables additional SMBus (and SPD) debug messages.
543
544           Note: This option will increase the size of the coreboot image.
545
546           If unsure, say N.
547
548 config DEBUG_SMI
549         bool "Output verbose SMI debug messages"
550         default n
551         depends on HAVE_SMI_HANDLER
552         help
553           This option enables additional SMI related debug messages.
554
555           Note: This option will increase the size of the coreboot image.
556
557           If unsure, say N.
558
559 config DEBUG_SMM_RELOCATION
560         bool "Debug SMM relocation code"
561         default n
562         depends on HAVE_SMI_HANDLER
563         help
564           This option enables additional SMM handler relocation related
565           debug messages.
566
567           Note: This option will increase the size of the coreboot image.
568
569           If unsure, say N.
570
571 config X86EMU_DEBUG
572         bool "Output verbose x86emu debug messages"
573         default n
574         depends on PCI_OPTION_ROM_RUN_YABEL
575         help
576           This option enables additional x86emu related debug messages.
577
578           Note: This option will increase the size of the coreboot image.
579
580           If unsure, say N.
581
582 config X86EMU_DEBUG_JMP
583         bool "Trace JMP/RETF"
584         default n
585         depends on X86EMU_DEBUG
586         help
587           Print information about JMP and RETF opcodes from x86emu.
588
589           Note: This option will increase the size of the coreboot image.
590
591           If unsure, say N.
592
593 config X86EMU_DEBUG_TRACE
594         bool "Trace all opcodes"
595         default n
596         depends on X86EMU_DEBUG
597         help
598           Print _all_ opcodes that are executed by x86emu.
599
600           WARNING: This will produce a LOT of output and take a long time.
601
602           Note: This option will increase the size of the coreboot image.
603
604           If unsure, say N.
605
606 config X86EMU_DEBUG_PNP
607         bool "Log Plug&Play accesses"
608         default n
609         depends on X86EMU_DEBUG
610         help
611           Print Plug And Play accesses made by option ROMs.
612
613           Note: This option will increase the size of the coreboot image.
614
615           If unsure, say N.
616
617 config X86EMU_DEBUG_DISK
618         bool "Log Disk I/O"
619         default n
620         depends on X86EMU_DEBUG
621         help
622           Print Disk I/O related messages.
623
624           Note: This option will increase the size of the coreboot image.
625
626           If unsure, say N.
627
628 config X86EMU_DEBUG_PMM
629         bool "Log PMM"
630         default n
631         depends on X86EMU_DEBUG
632         help
633           Print messages related to POST Memory Manager (PMM).
634
635           Note: This option will increase the size of the coreboot image.
636
637           If unsure, say N.
638
639
640 config X86EMU_DEBUG_VBE
641         bool "Debug VESA BIOS Extensions"
642         default n
643         depends on X86EMU_DEBUG
644         help
645           Print messages related to VESA BIOS Extension (VBE) functions.
646
647           Note: This option will increase the size of the coreboot image.
648
649           If unsure, say N.
650
651 config X86EMU_DEBUG_INT10
652         bool "Redirect INT10 output to console"
653         default n
654         depends on X86EMU_DEBUG
655         help
656           Let INT10 (i.e. character output) calls print messages to debug output.
657
658           Note: This option will increase the size of the coreboot image.
659
660           If unsure, say N.
661
662 config X86EMU_DEBUG_INTERRUPTS
663         bool "Log intXX calls"
664         default n
665         depends on X86EMU_DEBUG
666         help
667           Print messages related to interrupt handling.
668
669           Note: This option will increase the size of the coreboot image.
670
671           If unsure, say N.
672
673 config X86EMU_DEBUG_CHECK_VMEM_ACCESS
674         bool "Log special memory accesses"
675         default n
676         depends on X86EMU_DEBUG
677         help
678           Print messages related to accesses to certain areas of the virtual
679           memory (e.g. BDA (BIOS Data Area) or interrupt vectors)
680
681           Note: This option will increase the size of the coreboot image.
682
683           If unsure, say N.
684
685 config X86EMU_DEBUG_MEM
686         bool "Log all memory accesses"
687         default n
688         depends on X86EMU_DEBUG
689         help
690           Print memory accesses made by option ROM.
691           Note: This also includes accesses to fetch instructions.
692
693           Note: This option will increase the size of the coreboot image.
694
695           If unsure, say N.
696
697 config X86EMU_DEBUG_IO
698         bool "Log IO accesses"
699         default n
700         depends on X86EMU_DEBUG
701         help
702           Print I/O accesses made by option ROM.
703
704           Note: This option will increase the size of the coreboot image.
705
706           If unsure, say N.
707
708 config LLSHELL
709         bool "Built-in low-level shell"
710         default n
711         help
712           If enabled, you will have a low level shell to examine your machine.
713           Put llshell() in your (romstage) code to start the shell.
714           See src/arch/i386/llshell/llshell.inc for details.
715
716 endmenu
717
718 config LIFT_BSP_APIC_ID
719         bool
720         default n
721
722 # These probably belong somewhere else, but they are needed somewhere.
723 config AP_CODE_IN_CAR
724         bool
725         default n
726
727 config ENABLE_APIC_EXT_ID
728         bool
729         default n
730
731 config WARNINGS_ARE_ERRORS
732         bool
733         default y
734
735 config ID_SECTION_OFFSET
736         hex
737         default 0x10
738
739 source src/Kconfig.deprecated_options