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