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