This patch implements MBI (modular bios interface) support to the i830 chipset.
[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 endmenu
50
51 source src/mainboard/Kconfig
52 source src/arch/i386/Kconfig
53
54 menu "Chipset"
55
56 comment "CPU"
57 source src/cpu/Kconfig
58 comment "Northbridge"
59 source src/northbridge/Kconfig
60 comment "Southbridge"
61 source src/southbridge/Kconfig
62 comment "Super I/O"
63 source src/superio/Kconfig
64 comment "Devices"
65 source src/devices/Kconfig
66
67 endmenu
68
69 config PCI_BUS_SEGN_BITS
70         int
71         default 0
72
73 config MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID
74         hex
75         default 0x0
76
77 config MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID
78         hex
79         default 0x0
80
81 config CPU_ADDR_BITS
82         int
83         default 36
84
85 config XIP_ROM_BASE
86         hex
87         default 0xfffe0000
88
89 config XIP_ROM_SIZE
90         hex
91         default 0x20000
92
93 config LB_CKS_RANGE_START
94         int
95         default 49
96
97 config LB_CKS_RANGE_END
98         int
99         default 125
100
101 config LB_CKS_LOC
102         int
103         default 126
104
105 config LOGICAL_CPUS
106         bool
107         default y
108
109 config PCI_ROM_RUN
110         bool
111         default n
112
113 config HEAP_SIZE
114         hex
115         default 0x4000
116
117 config DEBUG
118         bool
119         default n
120
121 config USE_PRINTK_IN_CAR
122         bool
123         default n
124
125 config USE_OPTION_TABLE
126         bool
127         default n
128
129 config MAX_CPUS
130         int
131         default 1
132
133 config MMCONF_SUPPORT_DEFAULT
134         bool
135         default n
136
137 config MMCONF_SUPPORT
138         bool
139         default n
140
141 config RAMTOP
142         hex
143         default 0x200000
144
145 config ATI_RAGE_XL
146         bool
147
148 source src/console/Kconfig
149
150 config HAVE_ACPI_RESUME
151         bool
152         default n
153
154 config ACPI_SSDTX_NUM
155         int
156         default 0
157
158 config HAVE_FALLBACK_BOOT
159         bool
160         default y
161
162 config USE_FALLBACK_IMAGE
163         bool
164         default y
165
166 config HAVE_FAILOVER_BOOT
167         bool
168         default n
169
170 config USE_FAILOVER_IMAGE
171         bool
172         default n
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 BOARD_HAS_HARD_RESET
183         bool
184         default n
185         help
186           This variable specifies whether a given board has a reset.c
187           file containing a hard_reset() function.
188
189 config BOARD_HAS_FADT
190         bool
191         default n
192         help
193           This variable specifies whether a given board has a board-local
194           FADT in fadt.c. Long-term, those should be moved to appropriate
195           chipset components (eg. southbridge)
196
197 config HAVE_BUS_CONFIG
198         bool
199         default n
200         help
201           This variable specifies whether a given board has a get_bus_conf.c
202           file containing bus configuration data.
203
204 config HAVE_INIT_TIMER
205         bool
206         default n if UDELAY_IO
207         default y
208
209 config HAVE_MAINBOARD_RESOURCES
210         bool
211         default n
212
213 config HAVE_OPTION_TABLE
214         bool
215         default y
216         help
217           This variable specifies whether a given board has a cmos.layout
218           file containing NVRAM/CMOS bit definitions.
219           It defaults to 'y' but can be changed to 'n' in mainboard/*/Kconfig.
220
221 config PIRQ_ROUTE
222         bool
223         default n
224
225 config HAVE_SMI_HANDLER
226         bool
227         default n
228
229 config PCI_IO_CFG_EXT
230         bool
231         default n
232
233 config IOAPIC
234         bool
235         default n
236
237 # TODO: Can probably be removed once all chipsets have kconfig options for it.
238 config VIDEO_MB
239         int
240         default 0
241
242 config USE_WATCHDOG_ON_BOOT
243         bool
244         default n
245
246 config VGA
247         bool
248         default n
249         help
250           Build board-specific VGA code.
251
252 config GFXUMA
253         bool
254         default n
255         help
256           Enable Unified Memory Architecture for graphics.
257
258 # TODO
259 # menu "Drivers"
260 #
261 # endmenu
262
263 #TODO Remove this option or make it useful.
264 config HAVE_LOW_TABLES
265         bool
266         default y
267         help
268           This Option is unused in the code.  Since two boards try to set it to
269           'n', they may be broken.  We either need to make the option useful or
270           get rid of it.  The broken boards are:
271           asus/m2v-mx_se
272           supermicro/h8dme
273
274 config HAVE_HIGH_TABLES
275         bool
276         default y
277         help
278           This variable specifies whether a given northbridge has high table
279           support.
280           It is set in northbridge/*/Kconfig.
281           Whether or not the high tables are actually written by coreboot is
282           configurable by the user via WRITE_HIGH_TABLES.
283
284 config HAVE_ACPI_TABLES
285         bool
286         help
287           This variable specifies whether a given board has ACPI table support.
288           It is usually set in mainboard/*/Kconfig.
289           Whether or not the ACPI tables are actually generated by coreboot
290           is configurable by the user via GENERATE_ACPI_TABLES.
291
292 config HAVE_MP_TABLE
293         bool
294         help
295           This variable specifies whether a given board has MP table support.
296           It is usually set in mainboard/*/Kconfig.
297           Whether or not the MP table is actually generated by coreboot
298           is configurable by the user via GENERATE_MP_TABLE.
299
300 config HAVE_PIRQ_TABLE
301         bool
302         help
303           This variable specifies whether a given board has PIRQ table support.
304           It is usually set in mainboard/*/Kconfig.
305           Whether or not the PIRQ table is actually generated by coreboot
306           is configurable by the user via GENERATE_PIRQ_TABLE.
307
308 #These Options are here to avoid "undefined" warnings.
309 #The actual selection and help texts are in the following menu.
310
311 config GENERATE_ACPI_TABLES
312         bool
313         default HAVE_ACPI_TABLES
314
315 config GENERATE_MP_TABLE
316         bool
317         default HAVE_MP_TABLE
318
319 config GENERATE_PIRQ_TABLE
320         bool
321         default HAVE_PIRQ_TABLE
322
323 config WRITE_HIGH_TABLES
324         bool
325         default HAVE_HIGH_TABLES
326
327 menu "System tables"
328
329 config WRITE_HIGH_TABLES
330         bool "Write 'high' tables to avoid being overwritten in F segment"
331         depends on HAVE_HIGH_TABLES
332         default y
333
334 config MULTIBOOT
335         bool "Generate Multiboot tables (for GRUB2)"
336         default y
337
338 config GENERATE_ACPI_TABLES
339         depends on HAVE_ACPI_TABLES
340         bool "Generate ACPI tables"
341         default y
342         help
343           Generate ACPI tables for this board.
344
345           If unsure, say Y.
346
347 config GENERATE_MP_TABLE
348         depends on HAVE_MP_TABLE
349         bool "Generate an MP table"
350         default y
351         help
352           Generate an MP table (conforming to the Intel MultiProcessor
353           specification 1.4) for this board.
354
355           If unsure, say Y.
356
357 config GENERATE_PIRQ_TABLE
358         depends on HAVE_PIRQ_TABLE
359         bool "Generate a PIRQ table"
360         default y
361         help
362           Generate a PIRQ table for this board.
363
364           If unsure, say Y.
365
366 endmenu
367
368 menu "Payload"
369
370 choice
371         prompt "Add a payload"
372         default PAYLOAD_NONE
373
374 config PAYLOAD_NONE
375         bool "None"
376         help
377           Select this option if you want to create an "empty" coreboot
378           ROM image for a certain mainboard, i.e. a coreboot ROM image
379           which does not yet contain a payload.
380
381           For such an image to be useful, you have to use 'cbfstool'
382           to add a payload to the ROM image later.
383
384 config PAYLOAD_ELF
385         bool "An ELF executable payload"
386         help
387           Select this option if you have a payload image (an ELF file)
388           which coreboot should run as soon as the basic hardware
389           initialization is completed.
390
391           You will be able to specify the location and file name of the
392           payload image later.
393
394 endchoice
395
396 config FALLBACK_PAYLOAD_FILE
397         string "Payload path and filename"
398         depends on PAYLOAD_ELF
399         default "payload.elf"
400         help
401           The path and filename of the ELF executable file to use as payload.
402
403 # TODO: Defined if no payload? Breaks build?
404 config COMPRESSED_PAYLOAD_LZMA
405         bool "Use LZMA compression for payloads"
406         default y
407         depends on PAYLOAD_ELF
408         help
409           In order to reduce the size payloads take up in the ROM chip
410           coreboot can compress them using the LZMA algorithm.
411
412 config COMPRESSED_PAYLOAD_NRV2B
413         bool
414         default n
415
416 endmenu
417
418 menu "VGA BIOS"
419
420 config VGA_BIOS
421         bool "Add a VGA BIOS image"
422         help
423           Select this option if you have a VGA BIOS image that you would
424           like to add to your ROM.
425
426           You will be able to specify the location and file name of the
427           image later.
428
429 config FALLBACK_VGA_BIOS_FILE
430         string "VGA BIOS path and filename"
431         depends on VGA_BIOS
432         default "vgabios.bin"
433         help
434           The path and filename of the file to use as VGA BIOS.
435
436 config FALLBACK_VGA_BIOS_ID
437         string "VGA device PCI IDs"
438         depends on VGA_BIOS
439         default "1106,3230"
440         help
441           The comma-separated PCI vendor and device ID that would associate
442           your VGA BIOS to your video card.
443
444           Example: 1106,3230
445
446           In the above example 1106 is the PCI vendor ID (in hex, but without
447           the "0x" prefix) and 3230 specifies the PCI device ID of the
448           video card (also in hex, without "0x" prefix).
449
450 config INTEL_MBI
451         bool "Add an MBI image"
452         depends on NORTHBRIDGE_INTEL_I82830
453         help
454           Select this option if you have an Intel MBI image that you would
455           like to add to your ROM.
456
457           You will be able to specify the location and file name of the
458           image later.
459
460 config FALLBACK_MBI_FILE
461         string "Intel MBI path and filename"
462         depends on INTEL_MBI
463         default "mbi.bin"
464         help
465           The path and filename of the file to use as VGA BIOS.
466
467 endmenu
468
469 menu "Bootsplash"
470         depends on PCI_OPTION_ROM_RUN_YABEL
471
472 config BOOTSPLASH
473         prompt "Show graphical bootsplash"
474         bool
475         depends on PCI_OPTION_ROM_RUN_YABEL
476         help
477           This option shows a graphical bootsplash screen. The grapics are
478           loaded from the CBFS file bootsplash.jpg.
479
480 config FALLBACK_BOOTSPLASH_FILE
481         string "Bootsplash path and filename"
482         depends on BOOTSPLASH
483         default "bootsplash.jpg"
484         help
485           The path and filename of the file to use as graphical bootsplash 
486           screen. The file format has to be jpg. 
487
488 # TODO: Turn this into a "choice".
489 config FRAMEBUFFER_VESA_MODE
490         prompt "VESA framebuffer video mode"
491         hex
492         default 0x117
493         depends on BOOTSPLASH
494         help
495           This option sets the resolution used for the coreboot framebuffer and
496           bootsplash screen. Set to 0x117 for 1024x768x16. A diligent soul will
497           some day make this a "choice".
498
499 config COREBOOT_KEEP_FRAMEBUFFER
500         prompt "Keep VESA framebuffer"
501         bool
502         depends on BOOTSPLASH
503         help
504           This option keeps the framebuffer mode set after coreboot finishes
505           execution. If this option is enabled, coreboot will pass a
506           framebuffer entry in its coreboot table and the payload will need a
507           framebuffer driver. If this option is disabled, coreboot will switch
508           back to text mode before handing control to a payload.
509
510 endmenu
511
512 menu "Debugging"
513
514 # TODO: Better help text and detailed instructions.
515 config GDB_STUB
516         bool "GDB debugging support"
517         default y
518         help
519           If enabled, you will be able to set breakpoints for gdb debugging.
520           See src/arch/i386/lib/c_start.S for details.
521
522 endmenu
523
524 config LIFT_BSP_APIC_ID
525         bool
526         default n
527
528 # These probably belong somewhere else, but they are needed somewhere.
529 config AP_CODE_IN_CAR
530         bool
531         default n
532
533 config USE_INIT
534         bool
535         default n
536
537 config ENABLE_APIC_EXT_ID
538         bool
539         default n
540
541 config WARNINGS_ARE_ERRORS
542         bool
543         default n
544
545 config ID_SECTION_OFFSET
546         hex
547         default 0x10