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