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