grml...
[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 y
108         help
109             Support for AHCI disk code.
110     config VIRTIO_BLK
111         depends on DRIVES && !COREBOOT
112         bool "virtio-blk controllers"
113         default y
114         help
115             Support boot from virtio-blk 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
130     config USB
131         bool "USB"
132         default y
133         help
134             Support USB devices.
135     config USB_UHCI
136         depends on USB
137         bool "USB UHCI controllers"
138         default y
139         help
140             Support USB UHCI controllers.
141     config USB_OHCI
142         depends on USB
143         bool "USB OHCI controllers"
144         default y
145         help
146             Support USB OHCI controllers.
147     config USB_EHCI
148         depends on USB
149         bool "USB EHCI controllers"
150         default y
151         help
152             Support USB EHCI controllers.
153     config USB_MSC
154         depends on USB && DRIVES
155         bool "USB drives"
156         default y
157         help
158             Support USB disks.
159     config USB_HUB
160         depends on USB
161         bool "USB hubs"
162         default y
163         help
164             Support USB hubs.
165     config USB_KEYBOARD
166         depends on USB && KEYBOARD
167         bool "USB keyboards"
168         default y
169         help
170             Support USB keyboards.
171     config USB_MOUSE
172         depends on USB && MOUSE
173         bool "USB mice"
174         default y
175         help
176             Support USB mice.
177
178     config SERIAL
179         bool "Serial port"
180         default y
181         help
182             Support serial ports.  This also enables int 14 serial port calls.
183     config LPT
184         bool "Parallel port"
185         default y
186         help
187             Support parallel ports. This also enables int 17 parallel port calls.
188
189     config USE_SMM
190         depends on !COREBOOT
191         bool "System Management Mode (SMM)"
192         default y
193         help
194             Support System Management Mode (on emulators).
195     config MTRR_INIT
196         depends on !COREBOOT
197         bool "Initialize MTRRs"
198         default y
199         help
200             Initialize the Memory Type Range Registers (on emulators).
201 endmenu
202
203 menu "BIOS interfaces"
204     config DRIVES
205         bool "Drive interface"
206         default y
207         help
208             Support int13 disk/floppy drive functions.
209
210     config CDROM_BOOT
211         depends on DRIVES
212         bool "DVD/CDROM booting"
213         default y
214         help
215             Support for booting from a CD.  (El Torito spec support.)
216     config CDROM_EMU
217         depends on CDROM_BOOT
218         bool "DVD/CDROM boot drive emulation"
219         default y
220         help
221             Support bootable CDROMs that emulate a floppy/harddrive.
222
223     config PCIBIOS
224         bool "PCIBIOS interface"
225         default y
226         help
227             Support int 1a/b1 PCI BIOS calls.
228     config APMBIOS
229         bool "APM interface"
230         default y
231         help
232             Support int 15/53 APM BIOS calls.
233     config PNPBIOS
234         bool "PnP BIOS interface"
235         default y
236         help
237             Support PnP BIOS entry point.
238     config OPTIONROMS
239         bool "Option ROMS"
240         default y
241         help
242             Support finding and running option roms during POST.
243     config OPTIONROMS_DEPLOYED
244         depends on OPTIONROMS
245         bool "Option roms are already at 0xc0000-0xf0000"
246         default n
247         help
248             Select this if option ROMs are already copied to
249             0xc0000-0xf0000.  This must only be selected when using
250             Bochs or QEMU versions older than 0.12.
251     config PMM
252         depends on OPTIONROMS
253         bool "PMM interface"
254         default y
255         help
256             Support Post Memory Manager (PMM) entry point.
257     config BOOT
258         bool "Boot interface"
259         default y
260         help
261             Support int 19/18 system bootup support.
262     config KEYBOARD
263         bool "Keyboard interface"
264         default y
265         help
266             Support int 16 keyboard calls.
267     config KBD_CALL_INT15_4F
268         depends on KEYBOARD
269         bool "Keyboard hook interface"
270         default y
271         help
272             Support calling int155f on each keyboard event.
273     config MOUSE
274         bool "Mouse interface"
275         default y
276         help
277             Support for int15c2 mouse calls.
278
279     config S3_RESUME
280         bool "S3 resume"
281         default y
282         help
283             Support S3 resume handler.
284
285     config VGAHOOKS
286         bool "Hardware specific VGA helpers"
287         default y
288         help
289             Support int 155f BIOS callbacks specific to some Intel and
290             VIA on-board vga devices.
291
292     config DISABLE_A20
293         bool "Disable A20"
294         default n
295         help
296             Disable A20 on 16bit boot.
297 endmenu
298
299 menu "BIOS Tables"
300     config PIRTABLE
301         depends on !COREBOOT
302         bool "PIR table"
303         default y
304         help
305             Support generation of a PIR table in 0xf000 segment.
306     config MPTABLE
307         depends on !COREBOOT
308         bool "MPTable"
309         default y
310         help
311             Support generation of MPTable.
312     config SMBIOS
313         bool "SMBIOS"
314         default y
315         help
316             Support generation of SM BIOS tables.  This is also
317             sometimes called DMI.
318     config ACPI
319         depends on !COREBOOT
320         bool "ACPI"
321         default y
322         help
323             Support generation of ACPI tables.
324 endmenu
325
326 source ../vgasrc/Kconfig
327
328 menu "Debugging"
329     config DEBUG_LEVEL
330         int "Debug level"
331         default 1
332         help
333             Control how verbose debug output is.  The higher the
334             number, the more verbose SeaBIOS will be.
335
336             Set to zero to disable debugging.
337
338     config DEBUG_SERIAL
339         depends on DEBUG_LEVEL != 0
340         bool "Serial port debugging"
341         default n
342         help
343             Send debugging information to serial port.
344     config DEBUG_SERIAL_PORT
345         depends on DEBUG_SERIAL
346         hex "Serial port base address"
347         default 0x3f8
348         help
349             Base port for serial - generally 0x3f8, 0x2f8, 0x3e8, or 0x2e8.
350
351     config DEBUG_IO
352         depends on !COREBOOT && DEBUG_LEVEL != 0
353         bool "Special IO port debugging"
354         default y
355         help
356             Some emulators or hypervisors provide with a way to output debug
357             information by outputing strings in a special port present in the
358             IO space.
359
360     config DEBUG_IO_PORT
361         depends on DEBUG_IO
362         hex "Debug IO port address"
363         default 0x0402
364         help
365             Bochs uses the 0x0402 address by default, whereas Xen
366             makes the 0xe9 IO address available for guests use.
367 endmenu