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