blob: 63569419e8d719146bfba9836341c3cf7b5e23a5 [file] [log] [blame]
Kevin O'Connorbdce35f2008-02-26 21:33:14 -05001#ifndef __CONFIG_H
2#define __CONFIG_H
Kevin O'Connord9b06592008-05-06 20:00:12 -04003
Kevin O'Connor713be892011-01-26 21:19:25 -05004#include "../out/autoconf.h"
5
Kevin O'Connorf076a3e2008-02-25 22:25:15 -05006// Configuration definitions.
7
Kevin O'Connor6cb8ba92008-08-17 11:03:24 -04008//#define CONFIG_APPNAME "QEMU"
9//#define CONFIG_CPUNAME8 "QEMUCPU "
10//#define CONFIG_APPNAME6 "QEMU "
11//#define CONFIG_APPNAME4 "QEMU"
12#define CONFIG_APPNAME "Bochs"
13#define CONFIG_CPUNAME8 "BOCHSCPU"
14#define CONFIG_APPNAME6 "BOCHS "
15#define CONFIG_APPNAME4 "BXPC"
Kevin O'Connord9b06592008-05-06 20:00:12 -040016
Kevin O'Connorb9e62d22009-08-02 13:18:27 -040017// Screen writes are also sent to debug ports.
18#define CONFIG_SCREEN_AND_DEBUG 1
Kevin O'Connor1812e202008-05-07 21:29:50 -040019
Kevin O'Connora5826b52009-10-24 17:57:29 -040020// Support running hardware initialization in parallel
21#define CONFIG_THREADS 1
Kevin O'Connor98032802009-12-09 20:18:31 -050022// Allow hardware init to run in parallel with optionrom execution
23#define CONFIG_THREAD_OPTIONROMS 0
Kevin O'Connor7f55fd32010-09-25 11:34:06 -040024// Support relocating the one time initialization code to high memory
25#define CONFIG_RELOCATE_INIT 1
Kevin O'Connorc892b132009-08-11 21:59:37 -040026// Support int13 disk/floppy drive functions
27#define CONFIG_DRIVES 1
28// Support floppy drive access
Kevin O'Connor0a0e42e2009-08-16 12:09:44 -040029#define CONFIG_FLOPPY 1
Kevin O'Connor114592f2009-09-28 21:32:08 -040030// Support USB devices
31#define CONFIG_USB 1
32// Support USB UHCI controllers
33#define CONFIG_USB_UHCI 1
Kevin O'Connor59f02832009-10-12 10:09:15 -040034// Support USB OHCI controllers
Kevin O'Connor1c46a542009-10-17 23:53:32 -040035#define CONFIG_USB_OHCI 1
Kevin O'Connor190cc622010-03-09 19:43:52 -050036// Support USB EHCI controllers
37#define CONFIG_USB_EHCI 1
Kevin O'Connor7149fc82010-02-17 23:24:42 -050038// Support USB disks
39#define CONFIG_USB_MSC 1
Kevin O'Connor54671c12010-02-15 18:58:12 -050040// Support USB hubs
41#define CONFIG_USB_HUB 1
Kevin O'Connor114592f2009-09-28 21:32:08 -040042// Support USB keyboards
43#define CONFIG_USB_KEYBOARD 1
Kevin O'Connor0e885762010-05-01 22:14:40 -040044// Support USB mice
45#define CONFIG_USB_MOUSE 1
Kevin O'Connor57877482009-12-09 21:00:41 -050046// Support PS2 ports (keyboard and mouse)
47#define CONFIG_PS2PORT 1
Kevin O'Connor40967022008-07-21 22:23:05 -040048// Support for IDE disk code
Kevin O'Connor3491e8b2008-02-29 00:22:27 -050049#define CONFIG_ATA 1
Kevin O'Connor4d079022010-01-17 12:58:47 -050050// Detect and try to use ATA bus mastering DMA controllers.
51#define CONFIG_ATA_DMA 0
Kevin O'Connor32945af2009-02-27 21:23:01 -050052// Use 32bit PIO accesses on ATA (minor optimization on PCI transfers)
53#define CONFIG_ATA_PIO32 0
Gerd Hoffmannd52fdf62010-11-29 09:42:13 +010054// Support for AHCI disk code
55#define CONFIG_AHCI 0
Kevin O'Connord3817022008-07-12 12:46:07 -040056// Support for booting from a CD
Kevin O'Connor180a9592008-03-04 22:50:53 -050057#define CONFIG_CDROM_BOOT 1
Kevin O'Connord3817022008-07-12 12:46:07 -040058// Support for emulating a boot CD as a floppy/harddrive
Kevin O'Connordfa16502008-03-22 20:13:08 -040059#define CONFIG_CDROM_EMU 1
Kevin O'Connor0f803e42008-05-24 23:07:16 -040060// Support int 1a/b1 PCI BIOS calls
Kevin O'Connora0dc2962008-03-16 14:29:32 -040061#define CONFIG_PCIBIOS 1
Kevin O'Connor7ba6b302008-05-26 15:19:33 -040062// Support int 15/53 APM BIOS calls
63#define CONFIG_APMBIOS 1
Kevin O'Connor0c3068d2008-12-21 17:51:36 -050064// Support PnP BIOS entry point.
65#define CONFIG_PNPBIOS 1
Kevin O'Connore54ee382009-07-26 19:33:13 -040066// Support Post Memory Manager (PMM) entry point.
Kevin O'Connor0bf92702009-08-01 11:45:37 -040067#define CONFIG_PMM 1
Kevin O'Connor40967022008-07-21 22:23:05 -040068// Support int 19/18 system bootup support
69#define CONFIG_BOOT 1
Kevin O'Connor217d3632009-04-29 22:00:21 -040070// Support an interactive boot menu at end of post.
71#define CONFIG_BOOTMENU 1
72// Amount of time (in ms) to wait at menu before selecting normal boot.
73#define CONFIG_BOOTMENU_WAIT 2500
Kevin O'Connor62eea672008-12-06 11:57:45 -050074// Support int 14 serial port calls
Kevin O'Connor40967022008-07-21 22:23:05 -040075#define CONFIG_SERIAL 1
76// Support int 17 parallel port calls
77#define CONFIG_LPT 1
78// Support int 16 keyboard calls
79#define CONFIG_KEYBOARD 1
Kevin O'Connor32945af2009-02-27 21:23:01 -050080// Support calling int155f on each keyboard event
81#define CONFIG_KBD_CALL_INT15_4F 1
Kevin O'Connorffb81a42009-04-13 19:44:55 -040082// Disable A20 on 16bit boot
83#define CONFIG_DISABLE_A20 0
Kevin O'Connor32945af2009-02-27 21:23:01 -050084// Support for int15c2 mouse calls
Kevin O'Connor57877482009-12-09 21:00:41 -050085#define CONFIG_MOUSE 1
Kevin O'Connor6707c302009-02-28 12:26:39 -050086// If the target machine has multiple independent root buses, the
87// extra buses may be specified here.
88#define CONFIG_PCI_ROOT1 0x00
89#define CONFIG_PCI_ROOT2 0x00
Kevin O'Connor592323f2009-04-26 23:17:49 -040090// Support searching coreboot flash format.
Kevin O'Connord9c93612010-03-20 11:00:45 -040091#define CONFIG_COREBOOT_FLASH 1
Kevin O'Connora3855ad2009-08-16 21:59:40 -040092// Support floppy images in the coreboot flash.
93#define CONFIG_FLASH_FLOPPY 1
Kevin O'Connor592323f2009-04-26 23:17:49 -040094// Support the lzma decompression algorighm.
95#define CONFIG_LZMA 1
Kevin O'Connor2ddcf182008-07-21 22:30:38 -040096// Support finding and running option roms during post.
97#define CONFIG_OPTIONROMS 1
Kevin O'Connorceea03c2008-11-08 21:36:35 -050098// Set if option roms are already copied to 0xc0000-0xf0000
Anthony Liguoribb627052009-12-18 12:16:02 +010099#define CONFIG_OPTIONROMS_DEPLOYED 0
Kevin O'Connor62eea672008-12-06 11:57:45 -0500100// When option roms are not pre-deployed, SeaBIOS can copy an optionrom
101// from flash for up to 2 devices.
Kevin O'Connor4c0c85a2009-04-11 23:31:29 -0400102#define OPTIONROM_VENDEV_1 0x00000000
Kevin O'Connor62eea672008-12-06 11:57:45 -0500103#define OPTIONROM_MEM_1 0x00000000
Kevin O'Connor4c0c85a2009-04-11 23:31:29 -0400104#define OPTIONROM_VENDEV_2 0x00000000
Kevin O'Connor62eea672008-12-06 11:57:45 -0500105#define OPTIONROM_MEM_2 0x00000000
Kevin O'Connorc65a3802008-03-02 13:58:23 -0500106
Kevin O'Connord3817022008-07-12 12:46:07 -0400107// Support generation of a PIR table in 0xf000 segment (for emulators)
108#define CONFIG_PIRTABLE 1
109// Support generation of MPTable (for emulators)
110#define CONFIG_MPTABLE 1
Kevin O'Connor6cb8ba92008-08-17 11:03:24 -0400111// Support generation of SM BIOS tables (for emulators)
112#define CONFIG_SMBIOS 1
113// Support finding a UUID (for smbios) via "magic" outl sequence.
114#define CONFIG_UUID_BACKDOOR 1
Kevin O'Connord3817022008-07-12 12:46:07 -0400115// Support generation of ACPI tables (for emulators)
116#define CONFIG_ACPI 1
Kevin O'Connorb24c5742009-01-17 21:52:52 -0500117// Support S3 resume handler.
118#define CONFIG_S3_RESUME 1
Kevin O'Connord282af72009-07-04 04:10:32 -0400119// Run the vga rom during S3 resume.
120#define CONFIG_S3_RESUME_VGA_INIT 0
Kevin O'Connorafbed1b2010-06-28 07:34:53 -0400121// Support boot splash
Kevin O'Connor48f5f8b2010-07-30 14:09:31 -0400122#define CONFIG_BOOTSPLASH 1
Kevin O'Connorb24c5742009-01-17 21:52:52 -0500123// define it if the (emulated) hardware supports SMM mode
124#define CONFIG_USE_SMM 1
Kevin O'Connord995b3d2008-11-08 13:05:27 -0500125// Maximum number of map entries in the e820 map
126#define CONFIG_MAX_E820 32
Kevin O'Connord7e998f2010-02-15 22:48:28 -0500127// Space to reserve in f-segment for dynamic allocations
Kevin O'Connor8e62a902009-02-08 17:10:48 -0500128#define CONFIG_MAX_BIOSTABLE 2048
Kevin O'Connor2929c352009-07-25 13:48:27 -0400129// Space to reserve in high-memory for tables
130#define CONFIG_MAX_HIGHTABLE (64*1024)
Kevin O'Connorc892b132009-08-11 21:59:37 -0400131// Largest supported externaly facing drive id
132#define CONFIG_MAX_EXTDRIVE 16
Kevin O'Connor38fcbfe2008-02-25 22:30:47 -0500133
Kevin O'Connor44c631d2008-03-02 11:24:36 -0500134#define CONFIG_MODEL_ID 0xFC
135#define CONFIG_SUBMODEL_ID 0x00
136#define CONFIG_BIOS_REVISION 0x01
137
Gleb Natapov89acfa32010-05-10 11:36:37 +0300138// Support boot from virtio storage
139#define CONFIG_VIRTIO_BLK 1
140
Kevin O'Connor276d4a92008-06-11 22:47:01 -0400141// Various memory addresses used by the code.
Kevin O'Connor494dfc62009-11-20 09:22:19 -0500142#define BUILD_STACK_ADDR 0x7000
Kevin O'Connor9967ab72008-12-18 21:57:33 -0500143#define BUILD_S3RESUME_STACK_ADDR 0x1000
144#define BUILD_AP_BOOT_ADDR 0x10000
Kevin O'Connorf416fe92009-09-24 20:51:55 -0400145#define BUILD_EBDA_MINIMUM 0x90000
146#define BUILD_LOWRAM_END 0xa0000
Kevin O'Connore7739302009-07-26 19:16:09 -0400147#define BUILD_ROM_START 0xc0000
Kevin O'Connor9967ab72008-12-18 21:57:33 -0500148#define BUILD_BIOS_ADDR 0xf0000
149#define BUILD_BIOS_SIZE 0x10000
Kevin O'Connore7739302009-07-26 19:16:09 -0400150// 32KB for shadow ram copying (works around emulator deficiencies)
151#define BUILD_BIOS_TMP_ADDR 0x30000
Kevin O'Connorafc02da2009-12-23 21:24:27 -0500152#define BUILD_MAX_HIGHMEM 0xe0000000
Isaku Yamahata0a8eada2010-06-22 17:57:49 +0900153
154// Support old pci mem assignment behaviour
155//#define CONFIG_OLD_PCIMEM_ASSIGNMENT 1
156#if CONFIG_OLD_PCIMEM_ASSIGNMENT
Kevin O'Connor2d3f0f52010-01-28 20:33:20 -0500157#define BUILD_PCIMEM_START 0xf0000000
Isaku Yamahata0a8eada2010-06-22 17:57:49 +0900158#define BUILD_PCIMEM_SIZE (BUILD_PCIMEM_END - BUILD_PCIMEM_START)
159#define BUILD_PCIMEM_END 0xfec00000 /* IOAPIC is mapped at */
160#define BUILD_PCIPREFMEM_START 0
161#define BUILD_PCIPREFMEM_SIZE 0
162#define BUILD_PCIPREFMEM_END 0
163#else
164#define BUILD_PCIMEM_START 0xf0000000
165#define BUILD_PCIMEM_SIZE 0x08000000 /* half- of pci window */
166#define BUILD_PCIMEM_END (BUILD_PCIMEM_START + BUILD_PCIMEM_SIZE)
167#define BUILD_PCIPREFMEM_START BUILD_PCIMEM_END
168#define BUILD_PCIPREFMEM_SIZE (BUILD_PCIPREFMEM_END - BUILD_PCIPREFMEM_START)
169#define BUILD_PCIPREFMEM_END 0xfec00000 /* IOAPIC is mapped at */
170#endif
Kevin O'Connor276d4a92008-06-11 22:47:01 -0400171
Kevin O'Connor9967ab72008-12-18 21:57:33 -0500172#define BUILD_APIC_ADDR 0xfee00000
173#define BUILD_IOAPIC_ADDR 0xfec00000
Kevin O'Connorf5c11612008-12-14 10:11:45 -0500174
Kevin O'Connor9967ab72008-12-18 21:57:33 -0500175#define BUILD_SMM_INIT_ADDR 0x38000
176#define BUILD_SMM_ADDR 0xa8000
177#define BUILD_SMM_SIZE 0x8000
Kevin O'Connor276d4a92008-06-11 22:47:01 -0400178
Kevin O'Connor14927082008-11-08 19:07:49 -0500179// Important real-mode segments
Kevin O'Connor8c0e3722009-01-02 14:19:43 -0500180#define SEG_IVT 0x0000
181#define SEG_BDA 0x0040
Kevin O'Connor9521e262008-07-04 13:04:29 -0400182#define SEG_BIOS 0xf000
Kevin O'Connor9521e262008-07-04 13:04:29 -0400183
Kevin O'Connorb24c5742009-01-17 21:52:52 -0500184// Segment definitions in protected mode (see rombios32_gdt in misc.c)
Kevin O'Connor30853762009-01-17 18:49:20 -0500185#define SEG32_MODE32_CS (1 << 3)
186#define SEG32_MODE32_DS (2 << 3)
187#define SEG32_MODE16_CS (3 << 3)
188#define SEG32_MODE16_DS (4 << 3)
189#define SEG32_MODE16BIG_CS (5 << 3)
190#define SEG32_MODE16BIG_DS (6 << 3)
Kevin O'Connor14927082008-11-08 19:07:49 -0500191
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400192// Debugging levels. If non-zero and CONFIG_DEBUG_LEVEL is greater
193// than the specified value, then the corresponding irq handler will
194// report every enter event.
Kevin O'Connor75f49b32009-03-07 00:07:24 -0500195#define DEBUG_ISR_02 1
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400196#define DEBUG_HDL_05 1
Kevin O'Connorc541e1b2008-06-21 12:24:14 -0400197#define DEBUG_ISR_08 20
198#define DEBUG_ISR_09 9
199#define DEBUG_ISR_0e 9
200#define DEBUG_HDL_10 20
Kevin O'Connordfefeb52009-12-13 13:04:17 -0500201#define DEBUG_HDL_11 2
202#define DEBUG_HDL_12 2
Kevin O'Connorc541e1b2008-06-21 12:24:14 -0400203#define DEBUG_HDL_13 10
Kevin O'Connordfefeb52009-12-13 13:04:17 -0500204#define DEBUG_HDL_14 2
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400205#define DEBUG_HDL_15 9
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400206#define DEBUG_HDL_16 9
Kevin O'Connordfefeb52009-12-13 13:04:17 -0500207#define DEBUG_HDL_17 2
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400208#define DEBUG_HDL_18 1
209#define DEBUG_HDL_19 1
210#define DEBUG_HDL_1a 9
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400211#define DEBUG_HDL_40 1
Kevin O'Connorc541e1b2008-06-21 12:24:14 -0400212#define DEBUG_ISR_70 9
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400213#define DEBUG_ISR_74 9
Kevin O'Connorc541e1b2008-06-21 12:24:14 -0400214#define DEBUG_ISR_75 1
215#define DEBUG_ISR_76 10
Kevin O'Connoreac894d2009-02-05 21:23:39 -0500216#define DEBUG_ISR_hwpic1 5
217#define DEBUG_ISR_hwpic2 5
Kevin O'Connor0c3068d2008-12-21 17:51:36 -0500218#define DEBUG_HDL_pnp 1
Kevin O'Connore54ee382009-07-26 19:33:13 -0400219#define DEBUG_HDL_pmm 1
Kevin O'Connor871e0a02009-12-30 12:14:53 -0500220#define DEBUG_HDL_pcibios32 9
Kevin O'Connorc0031482010-01-01 13:03:17 -0500221#define DEBUG_HDL_apm 9
Kevin O'Connordfefeb52009-12-13 13:04:17 -0500222
223#define DEBUG_unimplemented 2
224#define DEBUG_invalid 3
Kevin O'Connor98032802009-12-09 20:18:31 -0500225#define DEBUG_thread 2
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400226
Kevin O'Connorbdce35f2008-02-26 21:33:14 -0500227#endif // config.h