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