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