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