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