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