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