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