- Fix UDELAY options and HAVE_INIT_TIMER [kconfig]
[coreboot.git] / src / Kconfig
1 ##
2 ## This file is part of the coreboot repair project.
3 ##
4 ## Redistribution and use in source and binary forms, with or without
5 ## modification, are permitted provided that the following conditions
6 ## are met:
7 ## 1. Redistributions of source code must retain the above copyright
8 ##    notice, this list of conditions and the following disclaimer.
9 ## 2. Redistributions in binary form must reproduce the above copyright
10 ##    notice, this list of conditions and the following disclaimer in the
11 ##    documentation and/or other materials provided with the distribution.
12 ## 3. The name of the author may not be used to endorse or promote products
13 ##    derived from this software without specific prior written permission.
14 ##
15 ## THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16 ## ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 ## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 ## ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19 ## FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 ## DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 ## OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 ## HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 ## LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 ## OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 ## SUCH DAMAGE.
26 ##
27
28 mainmenu "Coreboot Configuration"
29
30 menu "General setup"
31
32 config EXPERT
33         bool "Expert mode"
34         help
35           This allows you to select certain advanced configuration options.
36
37           Warning: Only enable this option if you really know what you are
38           doing! You have been warned!
39
40 config LOCALVERSION
41         string "Local version string"
42         help
43           Append an extra string to the end of the coreboot version.
44
45           This can be useful if, for instance, you want to append the
46           respective board's hostname or some other identifying string to
47           the coreboot version number, so that you can easily distinguish
48           boot logs of different boards from each other.
49
50 endmenu
51
52 source src/mainboard/Kconfig
53 source src/arch/i386/Kconfig
54
55 menu "Chipset"
56
57 comment "CPU"
58 source src/cpu/Kconfig
59 comment "Northbridge"
60 source src/northbridge/Kconfig
61 comment "Southbridge"
62 source src/southbridge/Kconfig
63 comment "Super I/O"
64 source src/superio/Kconfig
65 comment "Devices"
66 source src/devices/Kconfig
67
68 endmenu
69
70 config PCI_BUS_SEGN_BITS
71         int
72         default 0
73
74 config MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID
75         hex
76         default 0x0
77
78 config MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID
79         hex
80         default 0x0
81
82 config CPU_ADDR_BITS
83         int
84         default 36
85
86 config XIP_ROM_BASE
87         hex
88         default 0xfffe0000
89
90 config XIP_ROM_SIZE
91         hex
92         default 0x20000
93
94 config LB_CKS_RANGE_START
95         int
96         default 49
97
98 config LB_CKS_RANGE_END
99         int
100         default 125
101
102 config LB_CKS_LOC
103         int
104         default 126
105
106 config LOGICAL_CPUS
107         bool
108         default y
109
110 config PCI_ROM_RUN
111         bool
112         default n
113
114 config HEAP_SIZE
115         hex
116         default 0x4000
117
118 config COREBOOT_V2
119         bool
120         default y
121
122 config COREBOOT_V4
123         bool
124         default y
125
126 config DEBUG
127         bool
128         default n
129
130 config USE_PRINTK_IN_CAR
131         bool
132         default n
133
134 config USE_OPTION_TABLE
135         bool
136         default n
137
138 config MAX_CPUS
139         int
140         default 1
141
142 config MMCONF_SUPPORT_DEFAULT
143         bool
144         default n
145
146 config MMCONF_SUPPORT
147         bool
148         default n
149
150 config RAMTOP
151         hex
152         default 0x200000
153
154 config ATI_RAGE_XL
155         bool
156
157 source src/console/Kconfig
158
159 config HAVE_ACPI_RESUME
160         bool
161         default n
162
163 config ACPI_SSDTX_NUM
164         int
165         default 0
166
167 config HAVE_FALLBACK_BOOT
168         bool
169         default y
170
171 config USE_FALLBACK_IMAGE
172         bool
173         default y
174
175 config HAVE_FAILOVER_BOOT
176         bool
177         default n
178
179 config USE_FAILOVER_IMAGE
180         bool
181         default n
182
183 config HAVE_HARD_RESET
184         bool
185         default n
186
187 config HAVE_INIT_TIMER
188         bool
189         default n if UDELAY_IO
190         default y
191
192 config HAVE_MAINBOARD_RESOURCES
193         bool
194         default n
195
196 config HAVE_MOVNTI
197         bool
198         default n
199
200 config HAVE_OPTION_TABLE
201         bool
202         default y
203         help
204           This variable specifies whether a given board has a cmos.layout
205           file containing NVRAM/CMOS bit definitions.
206           It defaults to 'y' but can be changed to 'n' in mainboard/*/Kconfig.
207
208 config PIRQ_ROUTE
209         bool
210         default n
211
212 config HAVE_SMI_HANDLER
213         bool
214         default n
215
216 config PCI_IO_CFG_EXT
217         bool
218         default n
219
220 config IOAPIC
221         bool
222         default n
223
224 # TODO: Can probably be removed once all chipsets have kconfig options for it.
225 config VIDEO_MB
226         int
227         default 0
228
229 config USE_WATCHDOG_ON_BOOT
230         bool
231         default n
232
233 config VGA
234         bool
235         default n
236         help
237           Build board-specific VGA code.
238
239 config GFXUMA
240         bool
241         default n
242         help
243           Enable Unified Memory Architecture for graphics.
244
245 # TODO
246 # menu "Drivers"
247 #
248 # endmenu
249
250 #TODO Remove this option or make it useful.
251 config HAVE_LOW_TABLES
252         bool
253         default y
254         help
255           This Option is unused in the code.  Since two boards try to set it to
256           'n', they may be broken.  We either need to make the option useful or
257           get rid of it.  The broken boards are:
258           asus/m2v-mx_se
259           supermicro/h8dme
260
261 config HAVE_HIGH_TABLES
262         bool
263         default n
264         help
265           This variable specifies whether a given northbridge has high table
266           support.
267           It is set in northbridge/*/Kconfig.
268           Whether or not the high tables are actually written by coreboot is
269           configurable by the user via WRITE_HIGH_TABLES.
270
271 config HAVE_ACPI_TABLES
272         bool
273         help
274           This variable specifies whether a given board has ACPI table support.
275           It is usually set in mainboard/*/Kconfig.
276           Whether or not the ACPI tables are actually generated by coreboot
277           is configurable by the user via GENERATE_ACPI_TABLES.
278
279 config HAVE_MP_TABLE
280         bool
281         help
282           This variable specifies whether a given board has MP table support.
283           It is usually set in mainboard/*/Kconfig.
284           Whether or not the MP table is actually generated by coreboot
285           is configurable by the user via GENERATE_MP_TABLE.
286
287 config HAVE_PIRQ_TABLE
288         bool
289         help
290           This variable specifies whether a given board has PIRQ table support.
291           It is usually set in mainboard/*/Kconfig.
292           Whether or not the PIRQ table is actually generated by coreboot
293           is configurable by the user via GENERATE_PIRQ_TABLE.
294
295 #These Options are here to avoid "undefined" warnings.
296 #The actual selection and help texts are in the following menu.
297
298 config GENERATE_ACPI_TABLES
299         bool
300         default HAVE_ACPI_TABLES
301
302 config GENERATE_MP_TABLE
303         bool
304         default HAVE_MP_TABLE
305
306 config GENERATE_PIRQ_TABLE
307         bool
308         default HAVE_PIRQ_TABLE
309
310 config WRITE_HIGH_TABLES
311         bool
312         default HAVE_HIGH_TABLES
313
314 menu "System tables"
315
316 config WRITE_HIGH_TABLES
317         bool "Write 'high' tables to avoid being overwritten in F segment"
318         depends on HAVE_HIGH_TABLES
319         default y
320
321 config MULTIBOOT
322         bool "Generate Multiboot tables (for GRUB2)"
323         default y
324
325 config GENERATE_ACPI_TABLES
326         depends on HAVE_ACPI_TABLES
327         bool "Generate ACPI tables"
328         default y
329         help
330           Generate ACPI tables for this board.
331
332           If unsure, say Y.
333
334 config GENERATE_MP_TABLE
335         depends on HAVE_MP_TABLE
336         bool "Generate an MP table"
337         default y
338         help
339           Generate an MP table (conforming to the Intel MultiProcessor
340           specification 1.4) for this board.
341
342           If unsure, say Y.
343
344 config GENERATE_PIRQ_TABLE
345         depends on HAVE_PIRQ_TABLE
346         bool "Generate a PIRQ table"
347         default y
348         help
349           Generate a PIRQ table for this board.
350
351           If unsure, say Y.
352
353 endmenu
354
355 menu "Payload"
356
357 choice
358         prompt "Add a payload"
359         default PAYLOAD_NONE
360
361 config PAYLOAD_NONE
362         bool "None"
363         help
364           Select this option if you want to create an "empty" coreboot
365           ROM image for a certain mainboard, i.e. a coreboot ROM image
366           which does not yet contain a payload.
367
368           For such an image to be useful, you have to use 'cbfstool'
369           to add a payload to the ROM image later.
370
371 config PAYLOAD_ELF
372         bool "An ELF executable payload"
373         help
374           Select this option if you have a payload image (an ELF file)
375           which coreboot should run as soon as the basic hardware
376           initialization is completed.
377
378           You will be able to specify the location and file name of the
379           payload image later.
380
381 endchoice
382
383 config FALLBACK_PAYLOAD_FILE
384         string "Payload path and filename"
385         depends on PAYLOAD_ELF
386         default "payload.elf"
387         help
388           The path and filename of the ELF executable file to use as payload.
389
390 # TODO: Defined if no payload? Breaks build?
391 config COMPRESSED_PAYLOAD_LZMA
392         bool "Use LZMA compression for payloads"
393         default y
394         depends on PAYLOAD_ELF
395         help
396           In order to reduce the size payloads take up in the ROM chip
397           coreboot can compress them using the LZMA algorithm.
398
399 config COMPRESSED_PAYLOAD_NRV2B
400         bool
401         default n
402
403 endmenu
404
405 menu "VGA BIOS"
406
407 config VGA_BIOS
408         bool "Add a VGA BIOS image"
409         help
410           Select this option if you have a VGA BIOS image that you would
411           like to add to your ROM.
412
413           You will be able to specify the location and file name of the
414           image later.
415
416 config FALLBACK_VGA_BIOS_FILE
417         string "VGA BIOS path and filename"
418         depends on VGA_BIOS
419         default "vgabios.bin"
420         help
421           The path and filename of the file to use as VGA BIOS.
422
423 config FALLBACK_VGA_BIOS_ID
424         string "VGA device PCI IDs"
425         depends on VGA_BIOS
426         default "1106,3230"
427         help
428           The comma-separated PCI vendor and device ID that would associate
429           your VGA BIOS to your video card.
430
431           Example: 1106,3230
432
433           In the above example 1106 is the PCI vendor ID (in hex, but without
434           the "0x" prefix) and 3230 specifies the PCI device ID of the
435           video card (also in hex, without "0x" prefix).
436
437 endmenu
438
439 menu "Debugging"
440
441 # TODO: Better help text and detailed instructions.
442 config GDB_STUB
443         bool "GDB debugging support"
444         default y
445         help
446           If enabled, you will be able to set breakpoints for gdb debugging.
447           See src/arch/i386/lib/c_start.S for details.
448
449 endmenu
450
451 config LIFT_BSP_APIC_ID
452         bool
453         default n
454
455 # These probably belong somewhere else, but they are needed somewhere.
456 config AP_CODE_IN_CAR
457         bool
458         default n
459
460 config USE_INIT
461         bool
462         default n
463
464 config ENABLE_APIC_EXT_ID
465         bool
466         default n
467
468 config WARNINGS_ARE_ERRORS
469         bool
470         default n
471
472 config ID_SECTION_OFFSET
473         hex
474         default 0x10