Only allow CONFIG_XEN when not CONFIG_COREBOOT.
[seabios.git] / src / Kconfig
1 # Kconfig SeaBIOS configuration
2
3 mainmenu "SeaBIOS Configuration"
4
5 menu "General Features"
6
7     config COREBOOT
8         bool "Build for coreboot"
9         default n
10         help
11             Configure as a coreboot payload.
12
13     config XEN
14         depends on !COREBOOT
15         bool "Build for Xen HVM"
16         default n
17         help
18             Configure to be used by xen hvmloader, for a HVM guest.
19
20     config THREADS
21         bool "Parallelize hardware init"
22         default y
23         help
24             Support running hardware initialization in parallel.
25     config THREAD_OPTIONROMS
26         depends on THREADS
27         bool "Hardware init during option ROM execution"
28         default n
29         help
30             Allow hardware init to run in parallel with optionrom execution.
31
32             This can reduce boot time, but can cause some timing
33             variations during option ROM code execution.  It is not
34             known if all option ROMs will behave properly with this
35             option.
36
37     config RELOCATE_INIT
38         bool "Copy init code to high memory"
39         default y
40         help
41             Support relocating the one time initialization code to high memory.
42
43     config BOOTMENU
44         depends on BOOT
45         bool "Bootmenu"
46         default y
47         help
48             Support an interactive boot menu at end of post.
49     config BOOTMENU_WAIT
50         depends on BOOTMENU
51         int "Bootmenu delay"
52         default 2500
53         help
54             Amount of time (in ms) to wait at menu before selecting normal boot.
55     config BOOTSPLASH
56         depends on BOOTMENU
57         bool "Graphical boot splash screen"
58         default y
59         help
60             Support showing a graphical boot splash screen.
61     config BOOTORDER
62         depends on BOOT
63         bool "Boot ordering"
64         default y
65         help
66             Support controlling of the boot order via the fw_cfg/CBFS
67             "bootorder" file.
68
69     config COREBOOT_FLASH
70         depends on COREBOOT
71         bool "coreboot CBFS support"
72         default y
73         help
74             Support searching coreboot flash format.
75     config LZMA
76         depends on COREBOOT_FLASH
77         bool "CBFS lzma support"
78         default y
79         help
80             Support CBFS files compressed using the lzma decompression
81             algorighm.
82     config FLASH_FLOPPY
83         depends on COREBOOT_FLASH
84         bool "Floppy images in CBFS"
85         default y
86         help
87             Support floppy images in coreboot flash.
88
89 endmenu
90
91 menu "Hardware support"
92     config ATA
93         depends on DRIVES
94         bool "ATA controllers"
95         default y
96         help
97             Support for IDE disk code.
98     config ATA_DMA
99         depends on ATA
100         bool "ATA DMA"
101         default n
102         help
103             Detect and try to use ATA bus mastering DMA controllers.
104     config ATA_PIO32
105         depends on ATA
106         bool "ATA 32bit PIO"
107         default n
108         help
109             Use 32bit PIO accesses on ATA (minor optimization on PCI transfers).
110     config AHCI
111         depends on DRIVES
112         bool "AHCI controllers"
113         default n
114         help
115             Support for AHCI disk code.
116     config VIRTIO_BLK
117         depends on DRIVES && !COREBOOT
118         bool "VirtIO controllers"
119         default y
120         help
121             Support boot from virtio storage.
122     config FLOPPY
123         depends on DRIVES
124         bool "Floppy controller"
125         default y
126         help
127             Support floppy drive access.
128
129     config PS2PORT
130         depends on KEYBOARD || MOUSE
131         bool "PS/2 port"
132         default y
133         help
134             Support PS2 ports (keyboard and mouse).
135     config PS2_KEYBOARD_SPINUP
136         depends on PS2PORT && COREBOOT
137         int "Extra time (in ms) to allow a keyboard to initialize"
138         default 0
139         help
140             Some PS2 keyboards don't respond to commands immediately
141             after powering on.  Specify a positive value here to allow
142             additional time for the keyboard to become responsive.
143
144     config USB
145         bool "USB"
146         default y
147         help
148             Support USB devices.
149     config USB_UHCI
150         depends on USB
151         bool "USB UHCI controllers"
152         default y
153         help
154             Support USB UHCI controllers.
155     config USB_OHCI
156         depends on USB
157         bool "USB OHCI controllers"
158         default y
159         help
160             Support USB OHCI controllers.
161     config USB_EHCI
162         depends on USB
163         bool "USB EHCI controllers"
164         default y
165         help
166             Support USB EHCI controllers.
167     config USB_MSC
168         depends on USB && DRIVES
169         bool "USB drives"
170         default y
171         help
172             Support USB disks.
173     config USB_HUB
174         depends on USB
175         bool "USB hubs"
176         default y
177         help
178             Support USB hubs.
179     config USB_KEYBOARD
180         depends on USB && KEYBOARD
181         bool "USB keyboards"
182         default y
183         help
184             Support USB keyboards.
185     config USB_MOUSE
186         depends on USB && MOUSE
187         bool "USB mice"
188         default y
189         help
190             Support USB mice.
191
192     config SERIAL
193         bool "Serial port"
194         default y
195         help
196             Support serial ports.  This also enables int 14 serial port calls.
197     config LPT
198         bool "Parallel port"
199         default y
200         help
201             Support parallel ports. This also enables int 17 parallel port calls.
202
203     config EXTRA_PCI_ROOTS
204         bool "Extra root buses"
205         default n
206         help
207             If the target machine has multiple independent root buses,
208             the extra buses may be specified here.
209     config PCI_ROOT1
210         depends on EXTRA_PCI_ROOTS
211         hex "Extra primary PCI root bus number"
212         default 0x00
213     config PCI_ROOT2
214         depends on EXTRA_PCI_ROOTS
215         hex "Extra secondary PCI root bus number"
216         default 0x00
217
218     config USE_SMM
219         depends on !COREBOOT
220         bool "System Management Mode (SMM)"
221         default y
222         help
223             Support System Management Mode (on emulators).
224     config MTRR_INIT
225         depends on !COREBOOT
226         bool "Initialize MTRRs"
227         default y
228         help
229             Initialize the Memory Type Range Registers (on emulators).
230 endmenu
231
232 menu "BIOS interfaces"
233     config DRIVES
234         bool "Drive interface"
235         default y
236         help
237             Support int13 disk/floppy drive functions.
238
239     config CDROM_BOOT
240         depends on DRIVES
241         bool "DVD/CDROM booting"
242         default y
243         help
244             Support for booting from a CD.  (El Torito spec support.)
245     config CDROM_EMU
246         depends on CDROM_BOOT
247         bool "DVD/CDROM boot drive emulation"
248         default y
249         help
250             Support bootable CDROMs that emulate a floppy/harddrive.
251
252     config PCIBIOS
253         bool "PCIBIOS interface"
254         default y
255         help
256             Support int 1a/b1 PCI BIOS calls.
257     config APMBIOS
258         bool "APM interface"
259         default y
260         help
261             Support int 15/53 APM BIOS calls.
262     config PNPBIOS
263         bool "PnP BIOS interface"
264         default y
265         help
266             Support PnP BIOS entry point.
267     config OPTIONROMS
268         bool "Option ROMS"
269         default y
270         help
271             Support finding and running option roms during POST.
272     config OPTIONROMS_DEPLOYED
273         depends on OPTIONROMS
274         bool "Option roms are already at 0xc0000-0xf0000"
275         default n
276         help
277             Select this if option ROMs are already copied to
278             0xc0000-0xf0000.  This must only be selected when using
279             Bochs or QEMU versions older than 0.12.
280     config OPTIONROMS_CHECKSUM
281         depends on OPTIONROMS
282         bool "Require correct checksum on option ROMs"
283         default y
284         help
285             Option ROMs are required to have correct checksums.
286             However, some option ROMs in the wild don't correctly
287             follow the specifications and have bad checksums.
288             Say N here to allow SeaBIOS to execute them anyways.
289
290             If unsure, say Y.
291     config PMM
292         depends on OPTIONROMS
293         bool "PMM interface"
294         default y
295         help
296             Support Post Memory Manager (PMM) entry point.
297     config BOOT
298         bool "Boot interface"
299         default y
300         help
301             Support int 19/18 system bootup support.
302     config KEYBOARD
303         bool "Keyboard interface"
304         default y
305         help
306             Support int 16 keyboard calls.
307     config KBD_CALL_INT15_4F
308         depends on KEYBOARD
309         bool "Keyboard hook interface"
310         default y
311         help
312             Support calling int155f on each keyboard event.
313     config MOUSE
314         bool "Mouse interface"
315         default y
316         help
317             Support for int15c2 mouse calls.
318
319     config S3_RESUME
320         bool "S3 resume"
321         default y
322         help
323             Support S3 resume handler.
324     config S3_RESUME_VGA_INIT
325         depends on S3_RESUME
326         bool "Run VGA rom on S3 resume"
327         default n
328         help
329             Run the vga rom during S3 resume.
330
331     config VGAHOOKS
332         depends on COREBOOT
333         bool "Hardware specific VGA helpers"
334         default y
335         help
336             Support int 155f BIOS callbacks specific to some Intel and
337             VIA on-board vga devices.
338
339     config DISABLE_A20
340         bool "Disable A20"
341         default n
342         help
343             Disable A20 on 16bit boot.
344 endmenu
345
346 menu "BIOS Tables"
347     config PIRTABLE
348         depends on !COREBOOT
349         bool "PIR table"
350         default y
351         help
352             Support generation of a PIR table in 0xf000 segment.
353     config MPTABLE
354         depends on !COREBOOT
355         bool "MPTable"
356         default y
357         help
358             Support generation of MPTable.
359     config SMBIOS
360         bool "SMBIOS"
361         default y
362         help
363             Support generation of SM BIOS tables.  This is also
364             sometimes called DMI.
365     config ACPI
366         depends on !COREBOOT
367         bool "ACPI"
368         default y
369         help
370             Support generation of ACPI tables.
371 endmenu
372
373 menu "Debugging"
374     config DEBUG_LEVEL
375         int "Debug level"
376         default 1
377         help
378             Control how verbose debug output is.  The higher the
379             number, the more verbose SeaBIOS will be.
380
381             Set to zero to disable debugging.
382
383     config DEBUG_SERIAL
384         depends on DEBUG_LEVEL != 0
385         bool "Serial port debugging"
386         default n
387         help
388             Send debugging information to serial port.
389     config DEBUG_SERIAL_PORT
390         depends on DEBUG_SERIAL
391         hex "Serial port base address"
392         default 0x3f8
393         help
394             Base port for serial - generally 0x3f8, 0x2f8, 0x3e8, or 0x2e8.
395
396     config SCREEN_AND_DEBUG
397         depends on DEBUG_LEVEL != 0
398         bool "Show screen writes on debug ports"
399         default y
400         help
401             Send characters that SeaBIOS writes to the screen to the
402             debug ports.
403 endmenu