Replace CONFIG_PCI_ROOT1/2 with CONFIG_EXTRA_PCI_ROOTS.
[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         int "Number of extra root buses"
205         default 0
206         help
207             If the target machine has multiple independent root buses
208             set this to a positive value.  The SeaBIOS PCI probe will
209             then search for the given number of extra root buses.
210
211             Most machines do not have multiple root buses and this
212             setting should be zero.
213
214     config USE_SMM
215         depends on !COREBOOT
216         bool "System Management Mode (SMM)"
217         default y
218         help
219             Support System Management Mode (on emulators).
220     config MTRR_INIT
221         depends on !COREBOOT
222         bool "Initialize MTRRs"
223         default y
224         help
225             Initialize the Memory Type Range Registers (on emulators).
226 endmenu
227
228 menu "BIOS interfaces"
229     config DRIVES
230         bool "Drive interface"
231         default y
232         help
233             Support int13 disk/floppy drive functions.
234
235     config CDROM_BOOT
236         depends on DRIVES
237         bool "DVD/CDROM booting"
238         default y
239         help
240             Support for booting from a CD.  (El Torito spec support.)
241     config CDROM_EMU
242         depends on CDROM_BOOT
243         bool "DVD/CDROM boot drive emulation"
244         default y
245         help
246             Support bootable CDROMs that emulate a floppy/harddrive.
247
248     config PCIBIOS
249         bool "PCIBIOS interface"
250         default y
251         help
252             Support int 1a/b1 PCI BIOS calls.
253     config APMBIOS
254         bool "APM interface"
255         default y
256         help
257             Support int 15/53 APM BIOS calls.
258     config PNPBIOS
259         bool "PnP BIOS interface"
260         default y
261         help
262             Support PnP BIOS entry point.
263     config OPTIONROMS
264         bool "Option ROMS"
265         default y
266         help
267             Support finding and running option roms during POST.
268     config OPTIONROMS_DEPLOYED
269         depends on OPTIONROMS
270         bool "Option roms are already at 0xc0000-0xf0000"
271         default n
272         help
273             Select this if option ROMs are already copied to
274             0xc0000-0xf0000.  This must only be selected when using
275             Bochs or QEMU versions older than 0.12.
276     config OPTIONROMS_CHECKSUM
277         depends on OPTIONROMS
278         bool "Require correct checksum on option ROMs"
279         default y
280         help
281             Option ROMs are required to have correct checksums.
282             However, some option ROMs in the wild don't correctly
283             follow the specifications and have bad checksums.
284             Say N here to allow SeaBIOS to execute them anyways.
285
286             If unsure, say Y.
287     config PMM
288         depends on OPTIONROMS
289         bool "PMM interface"
290         default y
291         help
292             Support Post Memory Manager (PMM) entry point.
293     config BOOT
294         bool "Boot interface"
295         default y
296         help
297             Support int 19/18 system bootup support.
298     config KEYBOARD
299         bool "Keyboard interface"
300         default y
301         help
302             Support int 16 keyboard calls.
303     config KBD_CALL_INT15_4F
304         depends on KEYBOARD
305         bool "Keyboard hook interface"
306         default y
307         help
308             Support calling int155f on each keyboard event.
309     config MOUSE
310         bool "Mouse interface"
311         default y
312         help
313             Support for int15c2 mouse calls.
314
315     config S3_RESUME
316         bool "S3 resume"
317         default y
318         help
319             Support S3 resume handler.
320     config S3_RESUME_VGA_INIT
321         depends on S3_RESUME
322         bool "Run VGA rom on S3 resume"
323         default n
324         help
325             Run the vga rom during S3 resume.
326
327     config VGAHOOKS
328         depends on COREBOOT
329         bool "Hardware specific VGA helpers"
330         default y
331         help
332             Support int 155f BIOS callbacks specific to some Intel and
333             VIA on-board vga devices.
334
335     config DISABLE_A20
336         bool "Disable A20"
337         default n
338         help
339             Disable A20 on 16bit boot.
340 endmenu
341
342 menu "BIOS Tables"
343     config PIRTABLE
344         depends on !COREBOOT
345         bool "PIR table"
346         default y
347         help
348             Support generation of a PIR table in 0xf000 segment.
349     config MPTABLE
350         depends on !COREBOOT
351         bool "MPTable"
352         default y
353         help
354             Support generation of MPTable.
355     config SMBIOS
356         bool "SMBIOS"
357         default y
358         help
359             Support generation of SM BIOS tables.  This is also
360             sometimes called DMI.
361     config ACPI
362         depends on !COREBOOT
363         bool "ACPI"
364         default y
365         help
366             Support generation of ACPI tables.
367 endmenu
368
369 menu "Debugging"
370     config DEBUG_LEVEL
371         int "Debug level"
372         default 1
373         help
374             Control how verbose debug output is.  The higher the
375             number, the more verbose SeaBIOS will be.
376
377             Set to zero to disable debugging.
378
379     config DEBUG_SERIAL
380         depends on DEBUG_LEVEL != 0
381         bool "Serial port debugging"
382         default n
383         help
384             Send debugging information to serial port.
385     config DEBUG_SERIAL_PORT
386         depends on DEBUG_SERIAL
387         hex "Serial port base address"
388         default 0x3f8
389         help
390             Base port for serial - generally 0x3f8, 0x2f8, 0x3e8, or 0x2e8.
391
392     config SCREEN_AND_DEBUG
393         depends on DEBUG_LEVEL != 0
394         bool "Show screen writes on debug ports"
395         default y
396         help
397             Send characters that SeaBIOS writes to the screen to the
398             debug ports.
399 endmenu