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