These two files accidently got a wrong license header.
[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 endmenu
43
44 source src/mainboard/Kconfig
45 source src/arch/i386/Kconfig
46
47 menu "Chipset"
48
49 comment "CPU"
50 source src/cpu/Kconfig
51 comment "Northbridge"
52 source src/northbridge/Kconfig
53 comment "Southbridge"
54 source src/southbridge/Kconfig
55 comment "Super I/O"
56 source src/superio/Kconfig
57 comment "Devices"
58 source src/devices/Kconfig
59
60 endmenu
61
62 config PCI_BUS_SEGN_BITS
63         int
64         default 0
65
66 config MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID
67         hex
68         default 0x0
69
70 config MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID
71         hex
72         default 0x0
73
74 config CPU_ADDR_BITS
75         int
76         default 36
77
78 config XIP_ROM_BASE
79         hex
80         default 0xfffe0000
81
82 config XIP_ROM_SIZE
83         hex
84         default 0x20000
85
86 config LB_CKS_RANGE_START
87         int
88         default 49
89
90 config LB_CKS_RANGE_END
91         int
92         default 125
93
94 config LB_CKS_LOC
95         int
96         default 126
97
98 config LOGICAL_CPUS
99         bool
100         default y
101
102 config PCI_ROM_RUN
103         bool
104         default n
105
106 config HEAP_SIZE
107         hex
108         default 0x4000
109
110 config DEBUG
111         bool
112         default n
113
114 config USE_PRINTK_IN_CAR
115         bool
116         default n
117
118 config USE_OPTION_TABLE
119         bool
120         default n
121
122 config MAX_CPUS
123         int
124         default 1
125
126 config MMCONF_SUPPORT_DEFAULT
127         bool
128         default n
129
130 config MMCONF_SUPPORT
131         bool
132         default n
133
134 config RAMTOP
135         hex
136         default 0x200000
137
138 config ATI_RAGE_XL
139         bool
140
141 source src/console/Kconfig
142
143 config HAVE_ACPI_RESUME
144         bool
145         default n
146
147 config ACPI_SSDTX_NUM
148         int
149         default 0
150
151 config HAVE_FALLBACK_BOOT
152         bool
153         default y
154
155 config USE_FALLBACK_IMAGE
156         bool
157         default y
158
159 config HAVE_FAILOVER_BOOT
160         bool
161         default n
162
163 config USE_FAILOVER_IMAGE
164         bool
165         default n
166
167 config HAVE_HARD_RESET
168         bool
169         default n
170
171 config HAVE_INIT_TIMER
172         bool
173         default n if UDELAY_IO
174         default y
175
176 config HAVE_MAINBOARD_RESOURCES
177         bool
178         default n
179
180 config HAVE_MOVNTI
181         bool
182         default n
183
184 config HAVE_OPTION_TABLE
185         bool
186         default y
187         help
188           This variable specifies whether a given board has a cmos.layout
189           file containing NVRAM/CMOS bit definitions.
190           It defaults to 'y' but can be changed to 'n' in mainboard/*/Kconfig.
191
192 config PIRQ_ROUTE
193         bool
194         default n
195
196 config HAVE_SMI_HANDLER
197         bool
198         default n
199
200 config PCI_IO_CFG_EXT
201         bool
202         default n
203
204 config IOAPIC
205         bool
206         default n
207
208 # TODO: Can probably be removed once all chipsets have kconfig options for it.
209 config VIDEO_MB
210         int
211         default 0
212
213 config USE_WATCHDOG_ON_BOOT
214         bool
215         default n
216
217 config VGA
218         bool
219         default n
220         help
221           Build board-specific VGA code.
222
223 config GFXUMA
224         bool
225         default n
226         help
227           Enable Unified Memory Architecture for graphics.
228
229 # TODO
230 # menu "Drivers"
231 #
232 # endmenu
233
234 #TODO Remove this option or make it useful.
235 config HAVE_LOW_TABLES
236         bool
237         default y
238         help
239           This Option is unused in the code.  Since two boards try to set it to
240           'n', they may be broken.  We either need to make the option useful or
241           get rid of it.  The broken boards are:
242           asus/m2v-mx_se
243           supermicro/h8dme
244
245 config HAVE_HIGH_TABLES
246         bool
247         default n
248         help
249           This variable specifies whether a given northbridge has high table
250           support.
251           It is set in northbridge/*/Kconfig.
252           Whether or not the high tables are actually written by coreboot is
253           configurable by the user via WRITE_HIGH_TABLES.
254
255 config HAVE_ACPI_TABLES
256         bool
257         help
258           This variable specifies whether a given board has ACPI table support.
259           It is usually set in mainboard/*/Kconfig.
260           Whether or not the ACPI tables are actually generated by coreboot
261           is configurable by the user via GENERATE_ACPI_TABLES.
262
263 config HAVE_MP_TABLE
264         bool
265         help
266           This variable specifies whether a given board has MP table support.
267           It is usually set in mainboard/*/Kconfig.
268           Whether or not the MP table is actually generated by coreboot
269           is configurable by the user via GENERATE_MP_TABLE.
270
271 config HAVE_PIRQ_TABLE
272         bool
273         help
274           This variable specifies whether a given board has PIRQ table support.
275           It is usually set in mainboard/*/Kconfig.
276           Whether or not the PIRQ table is actually generated by coreboot
277           is configurable by the user via GENERATE_PIRQ_TABLE.
278
279 #These Options are here to avoid "undefined" warnings.
280 #The actual selection and help texts are in the following menu.
281
282 config GENERATE_ACPI_TABLES
283         bool
284         default HAVE_ACPI_TABLES
285
286 config GENERATE_MP_TABLE
287         bool
288         default HAVE_MP_TABLE
289
290 config GENERATE_PIRQ_TABLE
291         bool
292         default HAVE_PIRQ_TABLE
293
294 config WRITE_HIGH_TABLES
295         bool
296         default HAVE_HIGH_TABLES
297
298 menu "System tables"
299
300 config WRITE_HIGH_TABLES
301         bool "Write 'high' tables to avoid being overwritten in F segment"
302         depends on HAVE_HIGH_TABLES
303         default y
304
305 config MULTIBOOT
306         bool "Generate Multiboot tables (for GRUB2)"
307         default y
308
309 config GENERATE_ACPI_TABLES
310         depends on HAVE_ACPI_TABLES
311         bool "Generate ACPI tables"
312         default y
313         help
314           Generate ACPI tables for this board.
315
316           If unsure, say Y.
317
318 config GENERATE_MP_TABLE
319         depends on HAVE_MP_TABLE
320         bool "Generate an MP table"
321         default y
322         help
323           Generate an MP table (conforming to the Intel MultiProcessor
324           specification 1.4) for this board.
325
326           If unsure, say Y.
327
328 config GENERATE_PIRQ_TABLE
329         depends on HAVE_PIRQ_TABLE
330         bool "Generate a PIRQ table"
331         default y
332         help
333           Generate a PIRQ table for this board.
334
335           If unsure, say Y.
336
337 endmenu
338
339 menu "Payload"
340
341 choice
342         prompt "Add a payload"
343         default PAYLOAD_NONE
344
345 config PAYLOAD_NONE
346         bool "None"
347         help
348           Select this option if you want to create an "empty" coreboot
349           ROM image for a certain mainboard, i.e. a coreboot ROM image
350           which does not yet contain a payload.
351
352           For such an image to be useful, you have to use 'cbfstool'
353           to add a payload to the ROM image later.
354
355 config PAYLOAD_ELF
356         bool "An ELF executable payload"
357         help
358           Select this option if you have a payload image (an ELF file)
359           which coreboot should run as soon as the basic hardware
360           initialization is completed.
361
362           You will be able to specify the location and file name of the
363           payload image later.
364
365 endchoice
366
367 config FALLBACK_PAYLOAD_FILE
368         string "Payload path and filename"
369         depends on PAYLOAD_ELF
370         default "payload.elf"
371         help
372           The path and filename of the ELF executable file to use as payload.
373
374 # TODO: Defined if no payload? Breaks build?
375 config COMPRESSED_PAYLOAD_LZMA
376         bool "Use LZMA compression for payloads"
377         default y
378         depends on PAYLOAD_ELF
379         help
380           In order to reduce the size payloads take up in the ROM chip
381           coreboot can compress them using the LZMA algorithm.
382
383 config COMPRESSED_PAYLOAD_NRV2B
384         bool
385         default n
386
387 endmenu
388
389 menu "VGA BIOS"
390
391 config VGA_BIOS
392         bool "Add a VGA BIOS image"
393         help
394           Select this option if you have a VGA BIOS image that you would
395           like to add to your ROM.
396
397           You will be able to specify the location and file name of the
398           image later.
399
400 config FALLBACK_VGA_BIOS_FILE
401         string "VGA BIOS path and filename"
402         depends on VGA_BIOS
403         default "vgabios.bin"
404         help
405           The path and filename of the file to use as VGA BIOS.
406
407 config FALLBACK_VGA_BIOS_ID
408         string "VGA device PCI IDs"
409         depends on VGA_BIOS
410         default "1106,3230"
411         help
412           The comma-separated PCI vendor and device ID that would associate
413           your VGA BIOS to your video card.
414
415           Example: 1106,3230
416
417           In the above example 1106 is the PCI vendor ID (in hex, but without
418           the "0x" prefix) and 3230 specifies the PCI device ID of the
419           video card (also in hex, without "0x" prefix).
420
421 endmenu
422
423 menu "Debugging"
424
425 # TODO: Better help text and detailed instructions.
426 config GDB_STUB
427         bool "GDB debugging support"
428         default y
429         help
430           If enabled, you will be able to set breakpoints for gdb debugging.
431           See src/arch/i386/lib/c_start.S for details.
432
433 endmenu
434
435 config LIFT_BSP_APIC_ID
436         bool
437         default n
438
439 # These probably belong somewhere else, but they are needed somewhere.
440 config AP_CODE_IN_CAR
441         bool
442         default n
443
444 config USE_INIT
445         bool
446         default n
447
448 config ENABLE_APIC_EXT_ID
449         bool
450         default n
451
452 config WARNINGS_ARE_ERRORS
453         bool
454         default n
455
456 config ID_SECTION_OFFSET
457         hex
458         default 0x10