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