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