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