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