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