Since some people disapprove of white space cleanups mixed in regular commits
[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 endmenu
84
85 source src/mainboard/Kconfig
86 source src/arch/i386/Kconfig
87
88 menu "Chipset"
89
90 comment "CPU"
91 source src/cpu/Kconfig
92 comment "Northbridge"
93 source src/northbridge/Kconfig
94 comment "Southbridge"
95 source src/southbridge/Kconfig
96 comment "Super I/O"
97 source src/superio/Kconfig
98 comment "Devices"
99 source src/devices/Kconfig
100
101 endmenu
102
103 config PCI_BUS_SEGN_BITS
104         int
105         default 0
106
107 config MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID
108         hex
109         default 0x0
110
111 config MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID
112         hex
113         default 0x0
114
115 config CPU_ADDR_BITS
116         int
117         default 36
118
119 config LOGICAL_CPUS
120         bool
121         default y
122
123 config PCI_ROM_RUN
124         bool
125         default n
126
127 config HEAP_SIZE
128         hex
129         default 0x4000
130
131 config DEBUG
132         bool
133         default n
134
135 config USE_PRINTK_IN_CAR
136         bool
137         default n
138
139 config USE_OPTION_TABLE
140         bool "Use CMOS for configuration values"
141         default n
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 ACPI_SSDTX_NUM
165         int
166         default 0
167
168 config HAVE_HARD_RESET
169         bool
170         default y if BOARD_HAS_HARD_RESET
171         default n
172         help
173           This variable specifies whether a given board has a hard_reset
174           function, no matter if it's provided by board code or chipset code.
175
176 config HAVE_INIT_TIMER
177         bool
178         default n if UDELAY_IO
179         default y
180
181 config HAVE_MAINBOARD_RESOURCES
182         bool
183         default n
184
185 config HAVE_OPTION_TABLE
186         bool
187         default y
188         help
189           This variable specifies whether a given board has a cmos.layout
190           file containing NVRAM/CMOS bit definitions.
191           It defaults to 'y' but can be changed to 'n' in mainboard/*/Kconfig.
192
193 config PIRQ_ROUTE
194         bool
195         default n
196
197 config HAVE_SMI_HANDLER
198         bool
199         default n
200
201 config PCI_IO_CFG_EXT
202         bool
203         default n
204
205 config IOAPIC
206         bool
207         default n
208
209 # TODO: Can probably be removed once all chipsets have kconfig options for it.
210 config VIDEO_MB
211         int
212         default 0
213
214 config USE_WATCHDOG_ON_BOOT
215         bool
216         default n
217
218 config VGA
219         bool
220         default n
221         help
222           Build board-specific VGA code.
223
224 config GFXUMA
225         bool
226         default n
227         help
228           Enable Unified Memory Architecture for graphics.
229
230 # TODO
231 # menu "Drivers"
232 #
233 # endmenu
234
235 #TODO Remove this option or make it useful.
236 config HAVE_LOW_TABLES
237         bool
238         default y
239         help
240           This Option is unused in the code.  Since two boards try to set it to
241           'n', they may be broken.  We either need to make the option useful or
242           get rid of it.  The broken boards are:
243           asus/m2v-mx_se
244           supermicro/h8dme
245
246 config HAVE_HIGH_TABLES
247         bool
248         default y
249         help
250           This variable specifies whether a given northbridge has high table
251           support.
252           It is set in northbridge/*/Kconfig.
253           Whether or not the high tables are actually written by coreboot is
254           configurable by the user via WRITE_HIGH_TABLES.
255
256 config HAVE_ACPI_TABLES
257         bool
258         help
259           This variable specifies whether a given board has ACPI table support.
260           It is usually set in mainboard/*/Kconfig.
261           Whether or not the ACPI tables are actually generated by coreboot
262           is configurable by the user via GENERATE_ACPI_TABLES.
263
264 config HAVE_MP_TABLE
265         bool
266         help
267           This variable specifies whether a given board has MP table support.
268           It is usually set in mainboard/*/Kconfig.
269           Whether or not the MP table is actually generated by coreboot
270           is configurable by the user via GENERATE_MP_TABLE.
271
272 config HAVE_PIRQ_TABLE
273         bool
274         help
275           This variable specifies whether a given board has PIRQ table support.
276           It is usually set in mainboard/*/Kconfig.
277           Whether or not the PIRQ table is actually generated by coreboot
278           is configurable by the user via GENERATE_PIRQ_TABLE.
279
280 #These Options are here to avoid "undefined" warnings.
281 #The actual selection and help texts are in the following menu.
282
283 config GENERATE_ACPI_TABLES
284         bool
285         default HAVE_ACPI_TABLES
286
287 config GENERATE_MP_TABLE
288         bool
289         default HAVE_MP_TABLE
290
291 config GENERATE_PIRQ_TABLE
292         bool
293         default HAVE_PIRQ_TABLE
294
295 config WRITE_HIGH_TABLES
296         bool
297         default HAVE_HIGH_TABLES
298
299 menu "System tables"
300
301 config WRITE_HIGH_TABLES
302         bool "Write 'high' tables to avoid being overwritten in F segment"
303         depends on HAVE_HIGH_TABLES
304         default y
305
306 config MULTIBOOT
307         bool "Generate Multiboot tables (for GRUB2)"
308         default y
309
310 config GENERATE_ACPI_TABLES
311         depends on HAVE_ACPI_TABLES
312         bool "Generate ACPI tables"
313         default y
314         help
315           Generate ACPI tables for this board.
316
317           If unsure, say Y.
318
319 config GENERATE_MP_TABLE
320         depends on HAVE_MP_TABLE
321         bool "Generate an MP table"
322         default y
323         help
324           Generate an MP table (conforming to the Intel MultiProcessor
325           specification 1.4) for this board.
326
327           If unsure, say Y.
328
329 config GENERATE_PIRQ_TABLE
330         depends on HAVE_PIRQ_TABLE
331         bool "Generate a PIRQ table"
332         default y
333         help
334           Generate a PIRQ table for this board.
335
336           If unsure, say Y.
337
338 endmenu
339
340 menu "Payload"
341
342 choice
343         prompt "Add a payload"
344         default PAYLOAD_NONE
345
346 config PAYLOAD_NONE
347         bool "None"
348         help
349           Select this option if you want to create an "empty" coreboot
350           ROM image for a certain mainboard, i.e. a coreboot ROM image
351           which does not yet contain a payload.
352
353           For such an image to be useful, you have to use 'cbfstool'
354           to add a payload to the ROM image later.
355
356 config PAYLOAD_ELF
357         bool "An ELF executable payload"
358         help
359           Select this option if you have a payload image (an ELF file)
360           which coreboot should run as soon as the basic hardware
361           initialization is completed.
362
363           You will be able to specify the location and file name of the
364           payload image later.
365
366 endchoice
367
368 config FALLBACK_PAYLOAD_FILE
369         string "Payload path and filename"
370         depends on PAYLOAD_ELF
371         default "payload.elf"
372         help
373           The path and filename of the ELF executable file to use as payload.
374
375 # TODO: Defined if no payload? Breaks build?
376 config COMPRESSED_PAYLOAD_LZMA
377         bool "Use LZMA compression for payloads"
378         default y
379         depends on PAYLOAD_ELF
380         help
381           In order to reduce the size payloads take up in the ROM chip
382           coreboot can compress them using the LZMA algorithm.
383
384 config COMPRESSED_PAYLOAD_NRV2B
385         bool
386         default n
387
388 endmenu
389
390 menu "VGA BIOS"
391
392 config VGA_BIOS
393         bool "Add a VGA BIOS image"
394         help
395           Select this option if you have a VGA BIOS image that you would
396           like to add to your ROM.
397
398           You will be able to specify the location and file name of the
399           image later.
400
401 config FALLBACK_VGA_BIOS_FILE
402         string "VGA BIOS path and filename"
403         depends on VGA_BIOS
404         default "vgabios.bin"
405         help
406           The path and filename of the file to use as VGA BIOS.
407
408 config FALLBACK_VGA_BIOS_ID
409         string "VGA device PCI IDs"
410         depends on VGA_BIOS
411         default "1106,3230"
412         help
413           The comma-separated PCI vendor and device ID that would associate
414           your VGA BIOS to your video card.
415
416           Example: 1106,3230
417
418           In the above example 1106 is the PCI vendor ID (in hex, but without
419           the "0x" prefix) and 3230 specifies the PCI device ID of the
420           video card (also in hex, without "0x" prefix).
421
422 config INTEL_MBI
423         bool "Add an MBI image"
424         depends on NORTHBRIDGE_INTEL_I82830
425         help
426           Select this option if you have an Intel MBI image that you would
427           like to add to your ROM.
428
429           You will be able to specify the location and file name of the
430           image later.
431
432 config FALLBACK_MBI_FILE
433         string "Intel MBI path and filename"
434         depends on INTEL_MBI
435         default "mbi.bin"
436         help
437           The path and filename of the file to use as VGA BIOS.
438
439 endmenu
440
441 menu "Bootsplash"
442         depends on PCI_OPTION_ROM_RUN_YABEL
443
444 config BOOTSPLASH
445         prompt "Show graphical bootsplash"
446         bool
447         depends on PCI_OPTION_ROM_RUN_YABEL
448         help
449           This option shows a graphical bootsplash screen. The grapics are
450           loaded from the CBFS file bootsplash.jpg.
451
452 config FALLBACK_BOOTSPLASH_FILE
453         string "Bootsplash path and filename"
454         depends on BOOTSPLASH
455         default "bootsplash.jpg"
456         help
457           The path and filename of the file to use as graphical bootsplash
458           screen. The file format has to be jpg.
459
460 # TODO: Turn this into a "choice".
461 config FRAMEBUFFER_VESA_MODE
462         prompt "VESA framebuffer video mode"
463         hex
464         default 0x117
465         depends on BOOTSPLASH
466         help
467           This option sets the resolution used for the coreboot framebuffer and
468           bootsplash screen. Set to 0x117 for 1024x768x16. A diligent soul will
469           some day make this a "choice".
470
471 config COREBOOT_KEEP_FRAMEBUFFER
472         prompt "Keep VESA framebuffer"
473         bool
474         depends on BOOTSPLASH
475         help
476           This option keeps the framebuffer mode set after coreboot finishes
477           execution. If this option is enabled, coreboot will pass a
478           framebuffer entry in its coreboot table and the payload will need a
479           framebuffer driver. If this option is disabled, coreboot will switch
480           back to text mode before handing control to a payload.
481
482 endmenu
483
484 menu "Debugging"
485
486 # TODO: Better help text and detailed instructions.
487 config GDB_STUB
488         bool "GDB debugging support"
489         default y
490         help
491           If enabled, you will be able to set breakpoints for gdb debugging.
492           See src/arch/i386/lib/c_start.S for details.
493
494 config DEBUG_RAM_SETUP
495         bool "Output verbose RAM init debug messages"
496         default n
497         depends on (NORTHBRIDGE_AMD_AMDFAM10 \
498                  || NORTHBRIDGE_AMD_AMDK8 \
499                  || NORTHBRIDGE_VIA_CN700 \
500                  || NORTHBRIDGE_VIA_CX700 \
501                  || NORTHBRIDGE_VIA_VX800 \
502                  || NORTHBRIDGE_INTEL_E7501 \
503                  || NORTHBRIDGE_INTEL_I440BX \
504                  || NORTHBRIDGE_INTEL_I82810 \
505                  || NORTHBRIDGE_INTEL_I82830 \
506                  || NORTHBRIDGE_INTEL_I945)
507         help
508           This option enables additional RAM init related debug messages.
509           It is recommended to enable this when debugging issues on your
510           board which might be RAM init related.
511
512           Note: This option will increase the size of the coreboot image.
513
514           If unsure, say N.
515
516 config DEBUG_SMBUS
517         bool "Output verbose SMBus debug messages"
518         default n
519         depends on (SOUTHBRIDGE_VIA_VT8237R \
520                  || NORTHBRIDGE_VIA_VX800 \
521                  || NORTHBRIDGE_VIA_CX700 \
522                  || NORTHBRIDGE_AMD_AMDK8 \
523                  || NORTHBRIDGE_AMD_AMDFAM10 \
524                  || SOUTHBRIDGE_VIA_VT8231)
525         help
526           This option enables additional SMBus (and SPD) debug messages.
527
528           Note: This option will increase the size of the coreboot image.
529
530           If unsure, say N.
531
532 config DEBUG_SMI
533         bool "Output verbose SMI debug messages"
534         default n
535         depends on HAVE_SMI_HANDLER
536         help
537           This option enables additional SMI related debug messages.
538
539           Note: This option will increase the size of the coreboot image.
540
541           If unsure, say N.
542
543 config X86EMU_DEBUG
544         bool "Output verbose x86emu debug messages"
545         default n
546         depends on PCI_OPTION_ROM_RUN_YABEL
547         help
548           This option enables additional x86emu related debug messages.
549
550           Note: This option will increase the size of the coreboot image.
551
552           If unsure, say N.
553
554 config X86EMU_DEBUG_JMP
555         bool "Trace JMP/RETF"
556         default n
557         depends on X86EMU_DEBUG
558         help
559           Print information about JMP and RETF opcodes from x86emu.
560
561           Note: This option will increase the size of the coreboot image.
562
563           If unsure, say N.
564
565 config X86EMU_DEBUG_TRACE
566         bool "Trace all opcodes"
567         default n
568         depends on X86EMU_DEBUG
569         help
570           Print _all_ opcodes that are executed by x86emu.
571
572           WARNING: This will produce a LOT of output and take a long time.
573
574           Note: This option will increase the size of the coreboot image.
575
576           If unsure, say N.
577
578 config X86EMU_DEBUG_PNP
579         bool "Log Plug&Play accesses"
580         default n
581         depends on X86EMU_DEBUG
582         help
583           Print Plug And Play accesses made by option ROMs.
584
585           Note: This option will increase the size of the coreboot image.
586
587           If unsure, say N.
588
589 config X86EMU_DEBUG_DISK
590         bool "Log Disk I/O"
591         default n
592         depends on X86EMU_DEBUG
593         help
594           Print Disk I/O related messages.
595
596           Note: This option will increase the size of the coreboot image.
597
598           If unsure, say N.
599
600 config X86EMU_DEBUG_PMM
601         bool "Log PMM"
602         default n
603         depends on X86EMU_DEBUG
604         help
605           Print messages related to POST Memory Manager (PMM).
606
607           Note: This option will increase the size of the coreboot image.
608
609           If unsure, say N.
610
611
612 config X86EMU_DEBUG_VBE
613         bool "Debug VESA BIOS Extensions"
614         default n
615         depends on X86EMU_DEBUG
616         help
617           Print messages related to VESA BIOS Extension (VBE) functions.
618
619           Note: This option will increase the size of the coreboot image.
620
621           If unsure, say N.
622
623 config X86EMU_DEBUG_INT10
624         bool "Redirect INT10 output to console"
625         default n
626         depends on X86EMU_DEBUG
627         help
628           Let INT10 (i.e. character output) calls print messages to debug output.
629
630           Note: This option will increase the size of the coreboot image.
631
632           If unsure, say N.
633
634 config X86EMU_DEBUG_INTERRUPTS
635         bool "Log intXX calls"
636         default n
637         depends on X86EMU_DEBUG
638         help
639           Print messages related to interrupt handling.
640
641           Note: This option will increase the size of the coreboot image.
642
643           If unsure, say N.
644
645 config X86EMU_DEBUG_CHECK_VMEM_ACCESS
646         bool "Log special memory accesses"
647         default n
648         depends on X86EMU_DEBUG
649         help
650           Print messages related to accesses to certain areas of the virtual
651           memory (e.g. BDA (BIOS Data Area) or interrupt vectors)
652
653           Note: This option will increase the size of the coreboot image.
654
655           If unsure, say N.
656
657 config X86EMU_DEBUG_MEM
658         bool "Log all memory accesses"
659         default n
660         depends on X86EMU_DEBUG
661         help
662           Print memory accesses made by option ROM.
663           Note: This also includes accesses to fetch instructions.
664
665           Note: This option will increase the size of the coreboot image.
666
667           If unsure, say N.
668
669 config X86EMU_DEBUG_IO
670         bool "Log IO accesses"
671         default n
672         depends on X86EMU_DEBUG
673         help
674           Print I/O accesses made by option ROM.
675
676           Note: This option will increase the size of the coreboot image.
677
678           If unsure, say N.
679
680 config LLSHELL
681         bool "Built-in low-level shell"
682         default n
683         help
684           If enabled, you will have a low level shell to examine your machine.
685           Put llshell() in your (romstage) code to start the shell.
686           See src/arch/i386/llshell/llshell.inc for details.
687
688 endmenu
689
690 config LIFT_BSP_APIC_ID
691         bool
692         default n
693
694 # These probably belong somewhere else, but they are needed somewhere.
695 config AP_CODE_IN_CAR
696         bool
697         default n
698
699 config ENABLE_APIC_EXT_ID
700         bool
701         default n
702
703 config WARNINGS_ARE_ERRORS
704         bool
705         default n
706
707 config ID_SECTION_OFFSET
708         hex
709         default 0x10
710
711 source src/Kconfig.deprecated_options