Allow per-board setting of HT clock and width so
[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
60 menu "HyperTransport Setup"
61         depends on (NORTHBRIDGE_AMD_AMDK8 || NORTHBRIDGE_AMD_AMDFAM10) && EXPERT
62
63 choice
64         prompt "HyperTransport Frequency"
65         default LIMIT_HT_SPEED_AUTO
66         help
67           This option sets the maximum permissible HyperTransport link frequency.
68           Use of this option will only limit the autodetected HT frequency; it will not (and cannot) increase the frequency beyond the autodetected limits.
69           This is primarily used to work around poorly designed or laid out HT traces on certain motherboards.
70
71 config LIMIT_HT_SPEED_200
72         bool "Limit HT frequency to 200MHz"
73 config LIMIT_HT_SPEED_400
74         bool "Limit HT frequency to 400MHz"
75 config LIMIT_HT_SPEED_600
76         bool "Limit HT frequency to 600MHz"
77 config LIMIT_HT_SPEED_800
78         bool "Limit HT frequency to 800MHz"
79 config LIMIT_HT_SPEED_1000
80         bool "Limit HT frequency to 1.0GHz"
81 config LIMIT_HT_SPEED_1200
82         bool "Limit HT frequency to 1.2GHz"
83 config LIMIT_HT_SPEED_1400
84         bool "Limit HT frequency to 1.4GHz"
85 config LIMIT_HT_SPEED_1600
86         bool "Limit HT frequency to 1.6GHz"
87 config LIMIT_HT_SPEED_1800
88         bool "Limit HT frequency to 1.6GHz"
89 config LIMIT_HT_SPEED_2000
90         bool "Limit HT frequency to 2.0GHz"
91 config LIMIT_HT_SPEED_2200
92         bool "Limit HT frequency to 2.2GHz"
93 config LIMIT_HT_SPEED_2400
94         bool "Limit HT frequency to 2.4GHz"
95 config LIMIT_HT_SPEED_2600
96         bool "Limit HT frequency to 2.6GHz"
97 config LIMIT_HT_SPEED_AUTO
98         bool "Autodetect HT frequency"
99 endchoice
100
101 choice
102         prompt "HyperTransport Downlink Width"
103         default LIMIT_HT_DOWN_WIDTH_16
104         help
105           This option sets the maximum permissible HyperTransport link width.
106           Use of this option will only limit the autodetected HT width; it will not (and cannot) increase the width beyond the autodetected limits.
107           This is primarily used to work around poorly designed or laid out HT traces on certain motherboards.
108
109 config LIMIT_HT_DOWN_WIDTH_8
110         bool "8 bits"
111 config LIMIT_HT_DOWN_WIDTH_16
112         bool "16 bits"
113 endchoice
114
115 choice
116         prompt "HyperTransport Uplink Width"
117         default LIMIT_HT_UP_WIDTH_16
118         help
119           This option sets the maximum permissible HyperTransport link width.
120           Use of this option will only limit the autodetected HT width; it will not (and cannot) increase the width beyond the autodetected limits.
121           This is primarily used to work around poorly designed or laid out HT traces on certain motherboards.
122
123 config LIMIT_HT_UP_WIDTH_8
124         bool "8 bits"
125 config LIMIT_HT_UP_WIDTH_16
126         bool "16 bits"
127 endchoice
128
129 endmenu
130
131 source src/northbridge/Kconfig
132 comment "Southbridge"
133 source src/southbridge/Kconfig
134 comment "Super I/O"
135 source src/superio/Kconfig
136 comment "Devices"
137 source src/devices/Kconfig
138
139 endmenu
140
141 config PCI_BUS_SEGN_BITS
142         int
143         default 0
144
145 config MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID
146         hex
147         default 0x0
148
149 config MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID
150         hex
151         default 0x0
152
153 config CPU_ADDR_BITS
154         int
155         default 36
156
157 config XIP_ROM_BASE
158         hex
159         default 0xfffe0000
160
161 config XIP_ROM_SIZE
162         hex
163         default 0x20000
164
165 config LB_CKS_RANGE_START
166         int
167         default 49
168
169 config LB_CKS_RANGE_END
170         int
171         default 125
172
173 config LB_CKS_LOC
174         int
175         default 126
176
177 config LOGICAL_CPUS
178         bool
179         default y
180
181 config PCI_ROM_RUN
182         bool
183         default n
184
185 config HEAP_SIZE
186         hex
187         default 0x4000
188
189 config DEBUG
190         bool
191         default n
192
193 config USE_PRINTK_IN_CAR
194         bool
195         default n
196
197 config USE_OPTION_TABLE
198         bool
199         default n
200
201 config MAX_CPUS
202         int
203         default 1
204
205 config MMCONF_SUPPORT_DEFAULT
206         bool
207         default n
208
209 config MMCONF_SUPPORT
210         bool
211         default n
212
213 config RAMTOP
214         hex
215         default 0x200000
216
217 config ATI_RAGE_XL
218         bool
219
220 source src/console/Kconfig
221
222 config HAVE_ACPI_RESUME
223         bool
224         default n
225
226 config ACPI_SSDTX_NUM
227         int
228         default 0
229
230 config HAVE_FALLBACK_BOOT
231         bool
232         default y
233
234 config USE_FALLBACK_IMAGE
235         bool
236         default y
237
238 config HAVE_FAILOVER_BOOT
239         bool
240         default n
241
242 config USE_FAILOVER_IMAGE
243         bool
244         default n
245
246 config HAVE_HARD_RESET
247         bool
248         default y if BOARD_HAS_HARD_RESET
249         default n
250         help
251           This variable specifies whether a given board has a hard_reset
252           function, no matter if it's provided by board code or chipset code.
253
254 config BOARD_HAS_HARD_RESET
255         bool
256         default n
257         help
258           This variable specifies whether a given board has a reset.c
259           file containing a hard_reset() function.
260
261 config BOARD_HAS_FADT
262         bool
263         default n
264         help
265           This variable specifies whether a given board has a board-local
266           FADT in fadt.c. Long-term, those should be moved to appropriate
267           chipset components (eg. southbridge)
268
269 config HAVE_BUS_CONFIG
270         bool
271         default n
272         help
273           This variable specifies whether a given board has a get_bus_conf.c
274           file containing bus configuration data.
275
276 config HAVE_INIT_TIMER
277         bool
278         default n if UDELAY_IO
279         default y
280
281 config HAVE_MAINBOARD_RESOURCES
282         bool
283         default n
284
285 config HAVE_OPTION_TABLE
286         bool
287         default y
288         help
289           This variable specifies whether a given board has a cmos.layout
290           file containing NVRAM/CMOS bit definitions.
291           It defaults to 'y' but can be changed to 'n' in mainboard/*/Kconfig.
292
293 config PIRQ_ROUTE
294         bool
295         default n
296
297 config HAVE_SMI_HANDLER
298         bool
299         default n
300
301 config PCI_IO_CFG_EXT
302         bool
303         default n
304
305 config IOAPIC
306         bool
307         default n
308
309 # TODO: Can probably be removed once all chipsets have kconfig options for it.
310 config VIDEO_MB
311         int
312         default 0
313
314 config USE_WATCHDOG_ON_BOOT
315         bool
316         default n
317
318 config VGA
319         bool
320         default n
321         help
322           Build board-specific VGA code.
323
324 config GFXUMA
325         bool
326         default n
327         help
328           Enable Unified Memory Architecture for graphics.
329
330 # TODO
331 # menu "Drivers"
332 #
333 # endmenu
334
335 #TODO Remove this option or make it useful.
336 config HAVE_LOW_TABLES
337         bool
338         default y
339         help
340           This Option is unused in the code.  Since two boards try to set it to
341           'n', they may be broken.  We either need to make the option useful or
342           get rid of it.  The broken boards are:
343           asus/m2v-mx_se
344           supermicro/h8dme
345
346 config HAVE_HIGH_TABLES
347         bool
348         default y
349         help
350           This variable specifies whether a given northbridge has high table
351           support.
352           It is set in northbridge/*/Kconfig.
353           Whether or not the high tables are actually written by coreboot is
354           configurable by the user via WRITE_HIGH_TABLES.
355
356 config HAVE_ACPI_TABLES
357         bool
358         help
359           This variable specifies whether a given board has ACPI table support.
360           It is usually set in mainboard/*/Kconfig.
361           Whether or not the ACPI tables are actually generated by coreboot
362           is configurable by the user via GENERATE_ACPI_TABLES.
363
364 config HAVE_MP_TABLE
365         bool
366         help
367           This variable specifies whether a given board has MP table support.
368           It is usually set in mainboard/*/Kconfig.
369           Whether or not the MP table is actually generated by coreboot
370           is configurable by the user via GENERATE_MP_TABLE.
371
372 config HAVE_PIRQ_TABLE
373         bool
374         help
375           This variable specifies whether a given board has PIRQ table support.
376           It is usually set in mainboard/*/Kconfig.
377           Whether or not the PIRQ table is actually generated by coreboot
378           is configurable by the user via GENERATE_PIRQ_TABLE.
379
380 #These Options are here to avoid "undefined" warnings.
381 #The actual selection and help texts are in the following menu.
382
383 config GENERATE_ACPI_TABLES
384         bool
385         default HAVE_ACPI_TABLES
386
387 config GENERATE_MP_TABLE
388         bool
389         default HAVE_MP_TABLE
390
391 config GENERATE_PIRQ_TABLE
392         bool
393         default HAVE_PIRQ_TABLE
394
395 config WRITE_HIGH_TABLES
396         bool
397         default HAVE_HIGH_TABLES
398
399 menu "System tables"
400
401 config WRITE_HIGH_TABLES
402         bool "Write 'high' tables to avoid being overwritten in F segment"
403         depends on HAVE_HIGH_TABLES
404         default y
405
406 config MULTIBOOT
407         bool "Generate Multiboot tables (for GRUB2)"
408         default y
409
410 config GENERATE_ACPI_TABLES
411         depends on HAVE_ACPI_TABLES
412         bool "Generate ACPI tables"
413         default y
414         help
415           Generate ACPI tables for this board.
416
417           If unsure, say Y.
418
419 config GENERATE_MP_TABLE
420         depends on HAVE_MP_TABLE
421         bool "Generate an MP table"
422         default y
423         help
424           Generate an MP table (conforming to the Intel MultiProcessor
425           specification 1.4) for this board.
426
427           If unsure, say Y.
428
429 config GENERATE_PIRQ_TABLE
430         depends on HAVE_PIRQ_TABLE
431         bool "Generate a PIRQ table"
432         default y
433         help
434           Generate a PIRQ table for this board.
435
436           If unsure, say Y.
437
438 endmenu
439
440 menu "Payload"
441
442 choice
443         prompt "Add a payload"
444         default PAYLOAD_NONE
445
446 config PAYLOAD_NONE
447         bool "None"
448         help
449           Select this option if you want to create an "empty" coreboot
450           ROM image for a certain mainboard, i.e. a coreboot ROM image
451           which does not yet contain a payload.
452
453           For such an image to be useful, you have to use 'cbfstool'
454           to add a payload to the ROM image later.
455
456 config PAYLOAD_ELF
457         bool "An ELF executable payload"
458         help
459           Select this option if you have a payload image (an ELF file)
460           which coreboot should run as soon as the basic hardware
461           initialization is completed.
462
463           You will be able to specify the location and file name of the
464           payload image later.
465
466 endchoice
467
468 config FALLBACK_PAYLOAD_FILE
469         string "Payload path and filename"
470         depends on PAYLOAD_ELF
471         default "payload.elf"
472         help
473           The path and filename of the ELF executable file to use as payload.
474
475 # TODO: Defined if no payload? Breaks build?
476 config COMPRESSED_PAYLOAD_LZMA
477         bool "Use LZMA compression for payloads"
478         default y
479         depends on PAYLOAD_ELF
480         help
481           In order to reduce the size payloads take up in the ROM chip
482           coreboot can compress them using the LZMA algorithm.
483
484 config COMPRESSED_PAYLOAD_NRV2B
485         bool
486         default n
487
488 endmenu
489
490 menu "VGA BIOS"
491
492 config VGA_BIOS
493         bool "Add a VGA BIOS image"
494         help
495           Select this option if you have a VGA BIOS image that you would
496           like to add to your ROM.
497
498           You will be able to specify the location and file name of the
499           image later.
500
501 config FALLBACK_VGA_BIOS_FILE
502         string "VGA BIOS path and filename"
503         depends on VGA_BIOS
504         default "vgabios.bin"
505         help
506           The path and filename of the file to use as VGA BIOS.
507
508 config FALLBACK_VGA_BIOS_ID
509         string "VGA device PCI IDs"
510         depends on VGA_BIOS
511         default "1106,3230"
512         help
513           The comma-separated PCI vendor and device ID that would associate
514           your VGA BIOS to your video card.
515
516           Example: 1106,3230
517
518           In the above example 1106 is the PCI vendor ID (in hex, but without
519           the "0x" prefix) and 3230 specifies the PCI device ID of the
520           video card (also in hex, without "0x" prefix).
521
522 config INTEL_MBI
523         bool "Add an MBI image"
524         depends on NORTHBRIDGE_INTEL_I82830
525         help
526           Select this option if you have an Intel MBI image that you would
527           like to add to your ROM.
528
529           You will be able to specify the location and file name of the
530           image later.
531
532 config FALLBACK_MBI_FILE
533         string "Intel MBI path and filename"
534         depends on INTEL_MBI
535         default "mbi.bin"
536         help
537           The path and filename of the file to use as VGA BIOS.
538
539 endmenu
540
541 menu "Bootsplash"
542         depends on PCI_OPTION_ROM_RUN_YABEL
543
544 config BOOTSPLASH
545         prompt "Show graphical bootsplash"
546         bool
547         depends on PCI_OPTION_ROM_RUN_YABEL
548         help
549           This option shows a graphical bootsplash screen. The grapics are
550           loaded from the CBFS file bootsplash.jpg.
551
552 config FALLBACK_BOOTSPLASH_FILE
553         string "Bootsplash path and filename"
554         depends on BOOTSPLASH
555         default "bootsplash.jpg"
556         help
557           The path and filename of the file to use as graphical bootsplash 
558           screen. The file format has to be jpg. 
559
560 # TODO: Turn this into a "choice".
561 config FRAMEBUFFER_VESA_MODE
562         prompt "VESA framebuffer video mode"
563         hex
564         default 0x117
565         depends on BOOTSPLASH
566         help
567           This option sets the resolution used for the coreboot framebuffer and
568           bootsplash screen. Set to 0x117 for 1024x768x16. A diligent soul will
569           some day make this a "choice".
570
571 config COREBOOT_KEEP_FRAMEBUFFER
572         prompt "Keep VESA framebuffer"
573         bool
574         depends on BOOTSPLASH
575         help
576           This option keeps the framebuffer mode set after coreboot finishes
577           execution. If this option is enabled, coreboot will pass a
578           framebuffer entry in its coreboot table and the payload will need a
579           framebuffer driver. If this option is disabled, coreboot will switch
580           back to text mode before handing control to a payload.
581
582 endmenu
583
584 menu "Debugging"
585
586 # TODO: Better help text and detailed instructions.
587 config GDB_STUB
588         bool "GDB debugging support"
589         default y
590         help
591           If enabled, you will be able to set breakpoints for gdb debugging.
592           See src/arch/i386/lib/c_start.S for details.
593
594 endmenu
595
596 config LIFT_BSP_APIC_ID
597         bool
598         default n
599
600 # These probably belong somewhere else, but they are needed somewhere.
601 config AP_CODE_IN_CAR
602         bool
603         default n
604
605 config USE_INIT
606         bool
607         default n
608
609 config ENABLE_APIC_EXT_ID
610         bool
611         default n
612
613 config WARNINGS_ARE_ERRORS
614         bool
615         default n
616
617 config ID_SECTION_OFFSET
618         hex
619         default 0x10