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