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