blob: 354adcf69c0e9979646825a2a6133a2361e4df70 [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'Connor22dfb852008-06-07 15:24:19 -040015// Configure as a coreboot payload.
Kevin O'Connorf64f0db2008-05-18 02:42:58 -040016#define CONFIG_COREBOOT 0
17
Kevin O'Connorac8df8c2008-05-24 23:46:33 -040018// Control how verbose debug output is.
19#define CONFIG_DEBUG_LEVEL 1
20
Kevin O'Connor0f803e42008-05-24 23:07:16 -040021// Send debugging information to serial port
Kevin O'Connor1812e202008-05-07 21:29:50 -040022#define CONFIG_DEBUG_SERIAL 0
23
Kevin O'Connor40967022008-07-21 22:23:05 -040024// Support for int13 floppy drive access
Kevin O'Connorf076a3e2008-02-25 22:25:15 -050025#define CONFIG_FLOPPY_SUPPORT 1
Kevin O'Connor40967022008-07-21 22:23:05 -040026// Support for int15c2 mouse calls
Kevin O'Connorc65a3802008-03-02 13:58:23 -050027#define CONFIG_PS2_MOUSE 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'Connor40967022008-07-21 22:23:05 -040030// Support calling int155f on each keyboard press
Kevin O'Connor38fcbfe2008-02-25 22:30:47 -050031#define CONFIG_KBD_CALL_INT15_4F 1
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'Connorcde7a582008-08-17 11:08:46 -040038// Maximum number of PCI busses.
39#define CONFIG_PCI_BUS_COUNT 2
Kevin O'Connor7ba6b302008-05-26 15:19:33 -040040// Support int 15/53 APM BIOS calls
41#define CONFIG_APMBIOS 1
Kevin O'Connor40967022008-07-21 22:23:05 -040042// Support int 19/18 system bootup support
43#define CONFIG_BOOT 1
44// Support int 14 parallel port calls
45#define CONFIG_SERIAL 1
46// Support int 17 parallel port calls
47#define CONFIG_LPT 1
48// Support int 16 keyboard calls
49#define CONFIG_KEYBOARD 1
Kevin O'Connor2ddcf182008-07-21 22:30:38 -040050// Support finding and running option roms during post.
51#define CONFIG_OPTIONROMS 1
Kevin O'Connor40967022008-07-21 22:23:05 -040052// Support an interactive boot menu at end of post.
53#define CONFIG_BOOTMENU 1
Kevin O'Connorc65a3802008-03-02 13:58:23 -050054
Kevin O'Connord3817022008-07-12 12:46:07 -040055// Support generation of a PIR table in 0xf000 segment (for emulators)
56#define CONFIG_PIRTABLE 1
57// Support generation of MPTable (for emulators)
58#define CONFIG_MPTABLE 1
Kevin O'Connor6cb8ba92008-08-17 11:03:24 -040059// Support generation of SM BIOS tables (for emulators)
60#define CONFIG_SMBIOS 1
61// Support finding a UUID (for smbios) via "magic" outl sequence.
62#define CONFIG_UUID_BACKDOOR 1
Kevin O'Connord3817022008-07-12 12:46:07 -040063// Support generation of ACPI tables (for emulators)
64#define CONFIG_ACPI 1
Kevin O'Connor40967022008-07-21 22:23:05 -040065// Support bios callbacks specific to via vgabios.
66#define CONFIG_VGAHOOKS 1
Kevin O'Connord995b3d2008-11-08 13:05:27 -050067// Maximum number of map entries in the e820 map
68#define CONFIG_MAX_E820 32
Kevin O'Connord3817022008-07-12 12:46:07 -040069
Kevin O'Connord9b06592008-05-06 20:00:12 -040070/* define it if the (emulated) hardware supports SMM mode */
71#define CONFIG_USE_SMM 1
72
Kevin O'Connorbdce35f2008-02-26 21:33:14 -050073#define CONFIG_MAX_ATA_INTERFACES 4
74#define CONFIG_MAX_ATA_DEVICES (CONFIG_MAX_ATA_INTERFACES*2)
Kevin O'Connor38fcbfe2008-02-25 22:30:47 -050075
Kevin O'Connor438f6352008-03-30 21:46:53 -040076#define CONFIG_ACPI_DATA_SIZE 0x00010000L
77
Kevin O'Connor44c631d2008-03-02 11:24:36 -050078#define CONFIG_MODEL_ID 0xFC
79#define CONFIG_SUBMODEL_ID 0x00
80#define CONFIG_BIOS_REVISION 0x01
81
Kevin O'Connor276d4a92008-06-11 22:47:01 -040082// Various memory addresses used by the code.
83#define BUILD_STACK_ADDR 0xfffe
84#define BUILD_CPU_COUNT_ADDR 0xf000
85#define BUILD_AP_BOOT_ADDR 0x10000
Kevin O'Connore3677b12008-07-04 15:29:23 -040086#define BUILD_BIOS_ADDR 0xf0000
87#define BUILD_BIOS_SIZE 0x10000
Kevin O'Connor276d4a92008-06-11 22:47:01 -040088 /* 64 KB used to copy the BIOS to shadow RAM */
89#define BUILD_BIOS_TMP_ADDR 0x30000
90
91#define BUILD_PM_IO_BASE 0xb000
92#define BUILD_SMB_IO_BASE 0xb100
93#define BUILD_SMI_CMD_IO_ADDR 0xb2
94
Kevin O'Connor74534532008-05-12 18:28:58 -040095// Start of fixed addresses in 0xf0000 segment.
Kevin O'Connor276d4a92008-06-11 22:47:01 -040096#define BUILD_START_FIXED 0xe050
Kevin O'Connor74534532008-05-12 18:28:58 -040097
Kevin O'Connor14927082008-11-08 19:07:49 -050098// Important real-mode segments
Kevin O'Connor9521e262008-07-04 13:04:29 -040099#define SEG_BIOS 0xf000
100#define SEG_EBDA 0x9fc0
101#define SEG_BDA 0x0000
102
Kevin O'Connor14927082008-11-08 19:07:49 -0500103// Segment definitions in 32bit mode.
104#define SEG32_MODE32_CS (2 << 3) // 0x10
105#define SEG32_MODE32_DS (3 << 3) // 0x18
106#define SEG32_MODE16_CS (4 << 3) // 0x20
107#define SEG32_MODE16_DS (5 << 3) // 0x28
108
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400109// Debugging levels. If non-zero and CONFIG_DEBUG_LEVEL is greater
110// than the specified value, then the corresponding irq handler will
111// report every enter event.
Kevin O'Connorc541e1b2008-06-21 12:24:14 -0400112#define DEBUG_ISR_nmi 1
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400113#define DEBUG_HDL_05 1
Kevin O'Connorc541e1b2008-06-21 12:24:14 -0400114#define DEBUG_ISR_08 20
115#define DEBUG_ISR_09 9
116#define DEBUG_ISR_0e 9
117#define DEBUG_HDL_10 20
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400118#define DEBUG_HDL_11 1
119#define DEBUG_HDL_12 1
Kevin O'Connorc541e1b2008-06-21 12:24:14 -0400120#define DEBUG_HDL_13 10
121#define DEBUG_HDL_14 1
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400122#define DEBUG_HDL_15 9
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400123#define DEBUG_HDL_16 9
Kevin O'Connorc541e1b2008-06-21 12:24:14 -0400124#define DEBUG_HDL_17 1
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400125#define DEBUG_HDL_18 1
126#define DEBUG_HDL_19 1
127#define DEBUG_HDL_1a 9
Kevin O'Connorc541e1b2008-06-21 12:24:14 -0400128#define DEBUG_ISR_1c 20
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400129#define DEBUG_HDL_40 1
Kevin O'Connorc541e1b2008-06-21 12:24:14 -0400130#define DEBUG_ISR_70 9
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400131#define DEBUG_ISR_74 9
Kevin O'Connorc541e1b2008-06-21 12:24:14 -0400132#define DEBUG_ISR_75 1
133#define DEBUG_ISR_76 10
134#define DEBUG_ISR_hwirq 30
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400135
Kevin O'Connorbdce35f2008-02-26 21:33:14 -0500136#endif // config.h