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