blob: 20e74c768197fc66b2930f95832ae16b90a3c4da [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'Connorf076a3e2008-02-25 22:25:15 -05004// Configuration definitions.
5
Kevin O'Connor6cb8ba92008-08-17 11:03:24 -04006//#define CONFIG_APPNAME "QEMU"
7//#define CONFIG_CPUNAME8 "QEMUCPU "
8//#define CONFIG_APPNAME6 "QEMU "
9//#define CONFIG_APPNAME4 "QEMU"
10#define CONFIG_APPNAME "Bochs"
11#define CONFIG_CPUNAME8 "BOCHSCPU"
12#define CONFIG_APPNAME6 "BOCHS "
13#define CONFIG_APPNAME4 "BXPC"
Kevin O'Connord9b06592008-05-06 20:00:12 -040014
Kevin O'Connor7061eb62009-01-04 21:48:22 -050015// Configure for use with KVM.
16#define CONFIG_KVM 0
Kevin O'Connor22dfb852008-06-07 15:24:19 -040017// Configure as a coreboot payload.
Kevin O'Connorf64f0db2008-05-18 02:42:58 -040018#define CONFIG_COREBOOT 0
19
Kevin O'Connorac8df8c2008-05-24 23:46:33 -040020// Control how verbose debug output is.
21#define CONFIG_DEBUG_LEVEL 1
22
Kevin O'Connor0f803e42008-05-24 23:07:16 -040023// Send debugging information to serial port
Kevin O'Connor1812e202008-05-07 21:29:50 -040024#define CONFIG_DEBUG_SERIAL 0
25
Kevin O'Connor40967022008-07-21 22:23:05 -040026// Support for int13 floppy drive access
Kevin O'Connorf076a3e2008-02-25 22:25:15 -050027#define CONFIG_FLOPPY_SUPPORT 1
Kevin O'Connor40967022008-07-21 22:23:05 -040028// Support for IDE disk code
Kevin O'Connor3491e8b2008-02-29 00:22:27 -050029#define CONFIG_ATA 1
Kevin O'Connor32945af2009-02-27 21:23:01 -050030// Use 32bit PIO accesses on ATA (minor optimization on PCI transfers)
31#define CONFIG_ATA_PIO32 0
Kevin O'Connord3817022008-07-12 12:46:07 -040032// Support for booting from a CD
Kevin O'Connor180a9592008-03-04 22:50:53 -050033#define CONFIG_CDROM_BOOT 1
Kevin O'Connord3817022008-07-12 12:46:07 -040034// Support for emulating a boot CD as a floppy/harddrive
Kevin O'Connordfa16502008-03-22 20:13:08 -040035#define CONFIG_CDROM_EMU 1
Kevin O'Connor0f803e42008-05-24 23:07:16 -040036// Support int 1a/b1 PCI BIOS calls
Kevin O'Connora0dc2962008-03-16 14:29:32 -040037#define CONFIG_PCIBIOS 1
Kevin O'Connor7ba6b302008-05-26 15:19:33 -040038// Support int 15/53 APM BIOS calls
39#define CONFIG_APMBIOS 1
Kevin O'Connor0c3068d2008-12-21 17:51:36 -050040// Support PnP BIOS entry point.
41#define CONFIG_PNPBIOS 1
Kevin O'Connore54ee382009-07-26 19:33:13 -040042// Support Post Memory Manager (PMM) entry point.
Kevin O'Connor0bf92702009-08-01 11:45:37 -040043#define CONFIG_PMM 1
Kevin O'Connor40967022008-07-21 22:23:05 -040044// Support int 19/18 system bootup support
45#define CONFIG_BOOT 1
Kevin O'Connor217d3632009-04-29 22:00:21 -040046// Support an interactive boot menu at end of post.
47#define CONFIG_BOOTMENU 1
48// Amount of time (in ms) to wait at menu before selecting normal boot.
49#define CONFIG_BOOTMENU_WAIT 2500
Kevin O'Connor62eea672008-12-06 11:57:45 -050050// Support int 14 serial port calls
Kevin O'Connor40967022008-07-21 22:23:05 -040051#define CONFIG_SERIAL 1
52// Support int 17 parallel port calls
53#define CONFIG_LPT 1
54// Support int 16 keyboard calls
55#define CONFIG_KEYBOARD 1
Kevin O'Connor32945af2009-02-27 21:23:01 -050056// Support calling int155f on each keyboard event
57#define CONFIG_KBD_CALL_INT15_4F 1
Kevin O'Connorffb81a42009-04-13 19:44:55 -040058// Disable A20 on 16bit boot
59#define CONFIG_DISABLE_A20 0
Kevin O'Connor32945af2009-02-27 21:23:01 -050060// Support for int15c2 mouse calls
61#define CONFIG_PS2_MOUSE 1
Kevin O'Connor6707c302009-02-28 12:26:39 -050062// If the target machine has multiple independent root buses, the
63// extra buses may be specified here.
64#define CONFIG_PCI_ROOT1 0x00
65#define CONFIG_PCI_ROOT2 0x00
Kevin O'Connor592323f2009-04-26 23:17:49 -040066// Support searching coreboot flash format.
67#define CONFIG_COREBOOT_FLASH 0
68// Support the lzma decompression algorighm.
69#define CONFIG_LZMA 1
Kevin O'Connor2ddcf182008-07-21 22:30:38 -040070// Support finding and running option roms during post.
71#define CONFIG_OPTIONROMS 1
Kevin O'Connorceea03c2008-11-08 21:36:35 -050072// Set if option roms are already copied to 0xc0000-0xf0000
73#define CONFIG_OPTIONROMS_DEPLOYED 1
Kevin O'Connor62eea672008-12-06 11:57:45 -050074// When option roms are not pre-deployed, SeaBIOS can copy an optionrom
75// from flash for up to 2 devices.
Kevin O'Connor4c0c85a2009-04-11 23:31:29 -040076#define OPTIONROM_VENDEV_1 0x00000000
Kevin O'Connor62eea672008-12-06 11:57:45 -050077#define OPTIONROM_MEM_1 0x00000000
Kevin O'Connor4c0c85a2009-04-11 23:31:29 -040078#define OPTIONROM_VENDEV_2 0x00000000
Kevin O'Connor62eea672008-12-06 11:57:45 -050079#define OPTIONROM_MEM_2 0x00000000
Kevin O'Connorc65a3802008-03-02 13:58:23 -050080
Kevin O'Connord3817022008-07-12 12:46:07 -040081// Support generation of a PIR table in 0xf000 segment (for emulators)
82#define CONFIG_PIRTABLE 1
83// Support generation of MPTable (for emulators)
84#define CONFIG_MPTABLE 1
Kevin O'Connor6cb8ba92008-08-17 11:03:24 -040085// Support generation of SM BIOS tables (for emulators)
86#define CONFIG_SMBIOS 1
87// Support finding a UUID (for smbios) via "magic" outl sequence.
88#define CONFIG_UUID_BACKDOOR 1
Kevin O'Connord3817022008-07-12 12:46:07 -040089// Support generation of ACPI tables (for emulators)
90#define CONFIG_ACPI 1
Kevin O'Connor40967022008-07-21 22:23:05 -040091// Support bios callbacks specific to via vgabios.
Kevin O'Connorbf5ff172008-11-11 21:34:37 -050092#define CONFIG_VGAHOOKS 0
Kevin O'Connorb24c5742009-01-17 21:52:52 -050093// Support S3 resume handler.
94#define CONFIG_S3_RESUME 1
Kevin O'Connord282af72009-07-04 04:10:32 -040095// Run the vga rom during S3 resume.
96#define CONFIG_S3_RESUME_VGA_INIT 0
Kevin O'Connorb24c5742009-01-17 21:52:52 -050097// define it if the (emulated) hardware supports SMM mode
98#define CONFIG_USE_SMM 1
Kevin O'Connord995b3d2008-11-08 13:05:27 -050099// Maximum number of map entries in the e820 map
100#define CONFIG_MAX_E820 32
Kevin O'Connordf2c19a2009-01-17 20:07:09 -0500101// Space to reserve in f-segment for run-time built bios tables.
Kevin O'Connor8e62a902009-02-08 17:10:48 -0500102#define CONFIG_MAX_BIOSTABLE 2048
Kevin O'Connor2929c352009-07-25 13:48:27 -0400103// Space to reserve in high-memory for tables
104#define CONFIG_MAX_HIGHTABLE (64*1024)
Kevin O'Connord3817022008-07-12 12:46:07 -0400105
Kevin O'Connorbdce35f2008-02-26 21:33:14 -0500106#define CONFIG_MAX_ATA_INTERFACES 4
107#define CONFIG_MAX_ATA_DEVICES (CONFIG_MAX_ATA_INTERFACES*2)
Kevin O'Connor38fcbfe2008-02-25 22:30:47 -0500108
Kevin O'Connor44c631d2008-03-02 11:24:36 -0500109#define CONFIG_MODEL_ID 0xFC
110#define CONFIG_SUBMODEL_ID 0x00
111#define CONFIG_BIOS_REVISION 0x01
112
Kevin O'Connor276d4a92008-06-11 22:47:01 -0400113// Various memory addresses used by the code.
Kevin O'Connor9967ab72008-12-18 21:57:33 -0500114#define BUILD_STACK_ADDR 0x7c00
115#define BUILD_S3RESUME_STACK_ADDR 0x1000
116#define BUILD_AP_BOOT_ADDR 0x10000
Kevin O'Connore7739302009-07-26 19:16:09 -0400117#define BUILD_ROM_START 0xc0000
Kevin O'Connor9967ab72008-12-18 21:57:33 -0500118#define BUILD_BIOS_ADDR 0xf0000
119#define BUILD_BIOS_SIZE 0x10000
Kevin O'Connore7739302009-07-26 19:16:09 -0400120// 32KB for shadow ram copying (works around emulator deficiencies)
121#define BUILD_BIOS_TMP_ADDR 0x30000
Kevin O'Connor276d4a92008-06-11 22:47:01 -0400122
Kevin O'Connor9967ab72008-12-18 21:57:33 -0500123#define BUILD_APIC_ADDR 0xfee00000
124#define BUILD_IOAPIC_ADDR 0xfec00000
Kevin O'Connorf5c11612008-12-14 10:11:45 -0500125
Kevin O'Connor9967ab72008-12-18 21:57:33 -0500126#define BUILD_SMM_INIT_ADDR 0x38000
127#define BUILD_SMM_ADDR 0xa8000
128#define BUILD_SMM_SIZE 0x8000
Kevin O'Connor276d4a92008-06-11 22:47:01 -0400129
Kevin O'Connor14927082008-11-08 19:07:49 -0500130// Important real-mode segments
Kevin O'Connor8c0e3722009-01-02 14:19:43 -0500131#define SEG_IVT 0x0000
132#define SEG_BDA 0x0040
Kevin O'Connor9521e262008-07-04 13:04:29 -0400133#define SEG_BIOS 0xf000
Kevin O'Connor9521e262008-07-04 13:04:29 -0400134
Kevin O'Connorb24c5742009-01-17 21:52:52 -0500135// Segment definitions in protected mode (see rombios32_gdt in misc.c)
Kevin O'Connor30853762009-01-17 18:49:20 -0500136#define SEG32_MODE32_CS (1 << 3)
137#define SEG32_MODE32_DS (2 << 3)
138#define SEG32_MODE16_CS (3 << 3)
139#define SEG32_MODE16_DS (4 << 3)
140#define SEG32_MODE16BIG_CS (5 << 3)
141#define SEG32_MODE16BIG_DS (6 << 3)
Kevin O'Connor14927082008-11-08 19:07:49 -0500142
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400143// Debugging levels. If non-zero and CONFIG_DEBUG_LEVEL is greater
144// than the specified value, then the corresponding irq handler will
145// report every enter event.
Kevin O'Connor75f49b32009-03-07 00:07:24 -0500146#define DEBUG_ISR_02 1
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400147#define DEBUG_HDL_05 1
Kevin O'Connorc541e1b2008-06-21 12:24:14 -0400148#define DEBUG_ISR_08 20
149#define DEBUG_ISR_09 9
150#define DEBUG_ISR_0e 9
151#define DEBUG_HDL_10 20
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400152#define DEBUG_HDL_11 1
153#define DEBUG_HDL_12 1
Kevin O'Connorc541e1b2008-06-21 12:24:14 -0400154#define DEBUG_HDL_13 10
155#define DEBUG_HDL_14 1
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400156#define DEBUG_HDL_15 9
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400157#define DEBUG_HDL_16 9
Kevin O'Connorc541e1b2008-06-21 12:24:14 -0400158#define DEBUG_HDL_17 1
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400159#define DEBUG_HDL_18 1
160#define DEBUG_HDL_19 1
161#define DEBUG_HDL_1a 9
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400162#define DEBUG_HDL_40 1
Kevin O'Connorc541e1b2008-06-21 12:24:14 -0400163#define DEBUG_ISR_70 9
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400164#define DEBUG_ISR_74 9
Kevin O'Connorc541e1b2008-06-21 12:24:14 -0400165#define DEBUG_ISR_75 1
166#define DEBUG_ISR_76 10
Kevin O'Connoreac894d2009-02-05 21:23:39 -0500167#define DEBUG_ISR_hwpic1 5
168#define DEBUG_ISR_hwpic2 5
Kevin O'Connor0c3068d2008-12-21 17:51:36 -0500169#define DEBUG_HDL_pnp 1
Kevin O'Connore54ee382009-07-26 19:33:13 -0400170#define DEBUG_HDL_pmm 1
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400171
Kevin O'Connorbdce35f2008-02-26 21:33:14 -0500172#endif // config.h