Make Kconfig more similar to newconfig: enable "HAVE_HIGH_TABLES" per
[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 n
177
178 config HAVE_INIT_TIMER
179         bool
180         default n if UDELAY_IO
181         default y
182
183 config HAVE_MAINBOARD_RESOURCES
184         bool
185         default n
186
187 config HAVE_OPTION_TABLE
188         bool
189         default y
190         help
191           This variable specifies whether a given board has a cmos.layout
192           file containing NVRAM/CMOS bit definitions.
193           It defaults to 'y' but can be changed to 'n' in mainboard/*/Kconfig.
194
195 config PIRQ_ROUTE
196         bool
197         default n
198
199 config HAVE_SMI_HANDLER
200         bool
201         default n
202
203 config PCI_IO_CFG_EXT
204         bool
205         default n
206
207 config IOAPIC
208         bool
209         default n
210
211 # TODO: Can probably be removed once all chipsets have kconfig options for it.
212 config VIDEO_MB
213         int
214         default 0
215
216 config USE_WATCHDOG_ON_BOOT
217         bool
218         default n
219
220 config VGA
221         bool
222         default n
223         help
224           Build board-specific VGA code.
225
226 config GFXUMA
227         bool
228         default n
229         help
230           Enable Unified Memory Architecture for graphics.
231
232 # TODO
233 # menu "Drivers"
234 #
235 # endmenu
236
237 #TODO Remove this option or make it useful.
238 config HAVE_LOW_TABLES
239         bool
240         default y
241         help
242           This Option is unused in the code.  Since two boards try to set it to
243           'n', they may be broken.  We either need to make the option useful or
244           get rid of it.  The broken boards are:
245           asus/m2v-mx_se
246           supermicro/h8dme
247
248 config HAVE_HIGH_TABLES
249         bool
250         default y
251         help
252           This variable specifies whether a given northbridge has high table
253           support.
254           It is set in northbridge/*/Kconfig.
255           Whether or not the high tables are actually written by coreboot is
256           configurable by the user via WRITE_HIGH_TABLES.
257
258 config HAVE_ACPI_TABLES
259         bool
260         help
261           This variable specifies whether a given board has ACPI table support.
262           It is usually set in mainboard/*/Kconfig.
263           Whether or not the ACPI tables are actually generated by coreboot
264           is configurable by the user via GENERATE_ACPI_TABLES.
265
266 config HAVE_MP_TABLE
267         bool
268         help
269           This variable specifies whether a given board has MP table support.
270           It is usually set in mainboard/*/Kconfig.
271           Whether or not the MP table is actually generated by coreboot
272           is configurable by the user via GENERATE_MP_TABLE.
273
274 config HAVE_PIRQ_TABLE
275         bool
276         help
277           This variable specifies whether a given board has PIRQ table support.
278           It is usually set in mainboard/*/Kconfig.
279           Whether or not the PIRQ table is actually generated by coreboot
280           is configurable by the user via GENERATE_PIRQ_TABLE.
281
282 #These Options are here to avoid "undefined" warnings.
283 #The actual selection and help texts are in the following menu.
284
285 config GENERATE_ACPI_TABLES
286         bool
287         default HAVE_ACPI_TABLES
288
289 config GENERATE_MP_TABLE
290         bool
291         default HAVE_MP_TABLE
292
293 config GENERATE_PIRQ_TABLE
294         bool
295         default HAVE_PIRQ_TABLE
296
297 config WRITE_HIGH_TABLES
298         bool
299         default HAVE_HIGH_TABLES
300
301 menu "System tables"
302
303 config WRITE_HIGH_TABLES
304         bool "Write 'high' tables to avoid being overwritten in F segment"
305         depends on HAVE_HIGH_TABLES
306         default y
307
308 config MULTIBOOT
309         bool "Generate Multiboot tables (for GRUB2)"
310         default y
311
312 config GENERATE_ACPI_TABLES
313         depends on HAVE_ACPI_TABLES
314         bool "Generate ACPI tables"
315         default y
316         help
317           Generate ACPI tables for this board.
318
319           If unsure, say Y.
320
321 config GENERATE_MP_TABLE
322         depends on HAVE_MP_TABLE
323         bool "Generate an MP table"
324         default y
325         help
326           Generate an MP table (conforming to the Intel MultiProcessor
327           specification 1.4) for this board.
328
329           If unsure, say Y.
330
331 config GENERATE_PIRQ_TABLE
332         depends on HAVE_PIRQ_TABLE
333         bool "Generate a PIRQ table"
334         default y
335         help
336           Generate a PIRQ table for this board.
337
338           If unsure, say Y.
339
340 endmenu
341
342 menu "Payload"
343
344 choice
345         prompt "Add a payload"
346         default PAYLOAD_NONE
347
348 config PAYLOAD_NONE
349         bool "None"
350         help
351           Select this option if you want to create an "empty" coreboot
352           ROM image for a certain mainboard, i.e. a coreboot ROM image
353           which does not yet contain a payload.
354
355           For such an image to be useful, you have to use 'cbfstool'
356           to add a payload to the ROM image later.
357
358 config PAYLOAD_ELF
359         bool "An ELF executable payload"
360         help
361           Select this option if you have a payload image (an ELF file)
362           which coreboot should run as soon as the basic hardware
363           initialization is completed.
364
365           You will be able to specify the location and file name of the
366           payload image later.
367
368 endchoice
369
370 config FALLBACK_PAYLOAD_FILE
371         string "Payload path and filename"
372         depends on PAYLOAD_ELF
373         default "payload.elf"
374         help
375           The path and filename of the ELF executable file to use as payload.
376
377 # TODO: Defined if no payload? Breaks build?
378 config COMPRESSED_PAYLOAD_LZMA
379         bool "Use LZMA compression for payloads"
380         default y
381         depends on PAYLOAD_ELF
382         help
383           In order to reduce the size payloads take up in the ROM chip
384           coreboot can compress them using the LZMA algorithm.
385
386 config COMPRESSED_PAYLOAD_NRV2B
387         bool
388         default n
389
390 endmenu
391
392 menu "VGA BIOS"
393
394 config VGA_BIOS
395         bool "Add a VGA BIOS image"
396         help
397           Select this option if you have a VGA BIOS image that you would
398           like to add to your ROM.
399
400           You will be able to specify the location and file name of the
401           image later.
402
403 config FALLBACK_VGA_BIOS_FILE
404         string "VGA BIOS path and filename"
405         depends on VGA_BIOS
406         default "vgabios.bin"
407         help
408           The path and filename of the file to use as VGA BIOS.
409
410 config FALLBACK_VGA_BIOS_ID
411         string "VGA device PCI IDs"
412         depends on VGA_BIOS
413         default "1106,3230"
414         help
415           The comma-separated PCI vendor and device ID that would associate
416           your VGA BIOS to your video card.
417
418           Example: 1106,3230
419
420           In the above example 1106 is the PCI vendor ID (in hex, but without
421           the "0x" prefix) and 3230 specifies the PCI device ID of the
422           video card (also in hex, without "0x" prefix).
423
424 endmenu
425
426 menu "Debugging"
427
428 # TODO: Better help text and detailed instructions.
429 config GDB_STUB
430         bool "GDB debugging support"
431         default y
432         help
433           If enabled, you will be able to set breakpoints for gdb debugging.
434           See src/arch/i386/lib/c_start.S for details.
435
436 endmenu
437
438 config LIFT_BSP_APIC_ID
439         bool
440         default n
441
442 # These probably belong somewhere else, but they are needed somewhere.
443 config AP_CODE_IN_CAR
444         bool
445         default n
446
447 config USE_INIT
448         bool
449         default n
450
451 config ENABLE_APIC_EXT_ID
452         bool
453         default n
454
455 config WARNINGS_ARE_ERRORS
456         bool
457         default n
458
459 config ID_SECTION_OFFSET
460         hex
461         default 0x10