Add kconfig menus for most chipset VIDEO_MB values.
[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 source src/arch/ppc/Kconfig
55
56 menu "Chipset"
57
58 comment "CPU"
59 source src/cpu/Kconfig
60 comment "Northbridge"
61 source src/northbridge/Kconfig
62 comment "Southbridge"
63 source src/southbridge/Kconfig
64 comment "Super I/O"
65 source src/superio/Kconfig
66 comment "Devices"
67 source src/devices/Kconfig
68
69 endmenu
70
71 config PCI_BUS_SEGN_BITS
72         int
73         default 0
74
75 config MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID
76         hex
77         default 0x0
78
79 config MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID
80         hex
81         default 0x0
82
83 config CPU_ADDR_BITS
84         int
85         default 36
86
87 config XIP_ROM_BASE
88         hex
89         default 0xfffe0000
90
91 config XIP_ROM_SIZE
92         hex
93         default 0x20000
94
95 config LB_CKS_RANGE_START
96         int
97         default 49
98
99 config LB_CKS_RANGE_END
100         int
101         default 125
102
103 config LB_CKS_LOC
104         int
105         default 126
106
107 config LOGICAL_CPUS
108         bool
109         default y
110
111 config PCI_ROM_RUN
112         bool
113         default n
114
115 config HEAP_SIZE
116         hex
117         default 0x4000
118
119 config COREBOOT_V2
120         bool
121         default y
122
123 config COREBOOT_V4
124         bool
125         default y
126
127 config DEBUG
128         bool
129         default n
130
131 config USE_PRINTK_IN_CAR
132         bool
133         default n
134
135 config USE_OPTION_TABLE
136         bool
137         default n
138
139 config MAX_CPUS
140         int
141         default 1
142
143 config MMCONF_SUPPORT_DEFAULT
144         bool
145         default n
146
147 config MMCONF_SUPPORT
148         bool
149         default n
150
151 config RAMTOP
152         hex
153         default 0x200000
154
155 config ATI_RAGE_XL
156         bool
157
158 source src/console/Kconfig
159
160 config HAVE_ACPI_RESUME
161         bool
162         default n
163
164 config ACPI_SSDTX_NUM
165         int
166         default 0
167
168 config HAVE_FALLBACK_BOOT
169         bool
170         default y
171
172 config USE_FALLBACK_IMAGE
173         bool
174         default y
175
176 config HAVE_FAILOVER_BOOT
177         bool
178         default n
179
180 config USE_FAILOVER_IMAGE
181         bool
182         default n
183
184 config HAVE_HARD_RESET
185         bool
186         default n
187
188 config HAVE_INIT_TIMER
189         bool
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 n
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 BIOS ID"
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