Fix two warnings:
[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 USE_PRINTK_IN_CAR
143         bool
144         default n
145
146 config MAX_CPUS
147         int
148         default 1
149
150 config MMCONF_SUPPORT_DEFAULT
151         bool
152         default n
153
154 config MMCONF_SUPPORT
155         bool
156         default n
157
158 config ATI_RAGE_XL
159         bool
160
161 source src/console/Kconfig
162
163 config HAVE_ACPI_RESUME
164         bool
165         default n
166
167 config HAVE_ACPI_SLIC
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_PIRQ
524         bool "Check PIRQ table consistency"
525         default n
526         depends on GENERATE_PIRQ_TABLE
527         help
528           If unsure, say N.
529
530 config DEBUG_SMBUS
531         bool "Output verbose SMBus debug messages"
532         default n
533         depends on (SOUTHBRIDGE_VIA_VT8237R \
534                  || NORTHBRIDGE_VIA_VX800 \
535                  || NORTHBRIDGE_VIA_CX700 \
536                  || NORTHBRIDGE_AMD_AMDK8 \
537                  || NORTHBRIDGE_AMD_AMDFAM10 \
538                  || BOARD_LIPPERT_SPACERUNNER_LX \
539                  || SOUTHBRIDGE_VIA_VT8231)
540         help
541           This option enables additional SMBus (and SPD) debug messages.
542
543           Note: This option will increase the size of the coreboot image.
544
545           If unsure, say N.
546
547 config DEBUG_SMI
548         bool "Output verbose SMI debug messages"
549         default n
550         depends on HAVE_SMI_HANDLER
551         help
552           This option enables additional SMI related debug messages.
553
554           Note: This option will increase the size of the coreboot image.
555
556           If unsure, say N.
557
558 config X86EMU_DEBUG
559         bool "Output verbose x86emu debug messages"
560         default n
561         depends on PCI_OPTION_ROM_RUN_YABEL
562         help
563           This option enables additional x86emu related debug messages.
564
565           Note: This option will increase the size of the coreboot image.
566
567           If unsure, say N.
568
569 config X86EMU_DEBUG_JMP
570         bool "Trace JMP/RETF"
571         default n
572         depends on X86EMU_DEBUG
573         help
574           Print information about JMP and RETF opcodes from x86emu.
575
576           Note: This option will increase the size of the coreboot image.
577
578           If unsure, say N.
579
580 config X86EMU_DEBUG_TRACE
581         bool "Trace all opcodes"
582         default n
583         depends on X86EMU_DEBUG
584         help
585           Print _all_ opcodes that are executed by x86emu.
586
587           WARNING: This will produce a LOT of output and take a long time.
588
589           Note: This option will increase the size of the coreboot image.
590
591           If unsure, say N.
592
593 config X86EMU_DEBUG_PNP
594         bool "Log Plug&Play accesses"
595         default n
596         depends on X86EMU_DEBUG
597         help
598           Print Plug And Play accesses made by option ROMs.
599
600           Note: This option will increase the size of the coreboot image.
601
602           If unsure, say N.
603
604 config X86EMU_DEBUG_DISK
605         bool "Log Disk I/O"
606         default n
607         depends on X86EMU_DEBUG
608         help
609           Print Disk I/O related messages.
610
611           Note: This option will increase the size of the coreboot image.
612
613           If unsure, say N.
614
615 config X86EMU_DEBUG_PMM
616         bool "Log PMM"
617         default n
618         depends on X86EMU_DEBUG
619         help
620           Print messages related to POST Memory Manager (PMM).
621
622           Note: This option will increase the size of the coreboot image.
623
624           If unsure, say N.
625
626
627 config X86EMU_DEBUG_VBE
628         bool "Debug VESA BIOS Extensions"
629         default n
630         depends on X86EMU_DEBUG
631         help
632           Print messages related to VESA BIOS Extension (VBE) functions.
633
634           Note: This option will increase the size of the coreboot image.
635
636           If unsure, say N.
637
638 config X86EMU_DEBUG_INT10
639         bool "Redirect INT10 output to console"
640         default n
641         depends on X86EMU_DEBUG
642         help
643           Let INT10 (i.e. character output) calls print messages to debug output.
644
645           Note: This option will increase the size of the coreboot image.
646
647           If unsure, say N.
648
649 config X86EMU_DEBUG_INTERRUPTS
650         bool "Log intXX calls"
651         default n
652         depends on X86EMU_DEBUG
653         help
654           Print messages related to interrupt handling.
655
656           Note: This option will increase the size of the coreboot image.
657
658           If unsure, say N.
659
660 config X86EMU_DEBUG_CHECK_VMEM_ACCESS
661         bool "Log special memory accesses"
662         default n
663         depends on X86EMU_DEBUG
664         help
665           Print messages related to accesses to certain areas of the virtual
666           memory (e.g. BDA (BIOS Data Area) or interrupt vectors)
667
668           Note: This option will increase the size of the coreboot image.
669
670           If unsure, say N.
671
672 config X86EMU_DEBUG_MEM
673         bool "Log all memory accesses"
674         default n
675         depends on X86EMU_DEBUG
676         help
677           Print memory accesses made by option ROM.
678           Note: This also includes accesses to fetch instructions.
679
680           Note: This option will increase the size of the coreboot image.
681
682           If unsure, say N.
683
684 config X86EMU_DEBUG_IO
685         bool "Log IO accesses"
686         default n
687         depends on X86EMU_DEBUG
688         help
689           Print I/O accesses made by option ROM.
690
691           Note: This option will increase the size of the coreboot image.
692
693           If unsure, say N.
694
695 config LLSHELL
696         bool "Built-in low-level shell"
697         default n
698         help
699           If enabled, you will have a low level shell to examine your machine.
700           Put llshell() in your (romstage) code to start the shell.
701           See src/arch/i386/llshell/llshell.inc for details.
702
703 endmenu
704
705 config LIFT_BSP_APIC_ID
706         bool
707         default n
708
709 # These probably belong somewhere else, but they are needed somewhere.
710 config AP_CODE_IN_CAR
711         bool
712         default n
713
714 config ENABLE_APIC_EXT_ID
715         bool
716         default n
717
718 config WARNINGS_ARE_ERRORS
719         bool
720         default n
721
722 config ID_SECTION_OFFSET
723         hex
724         default 0x10
725
726 source src/Kconfig.deprecated_options