Kevin O'Connor | bdce35f | 2008-02-26 21:33:14 -0500 | [diff] [blame] | 1 | #ifndef __CONFIG_H |
| 2 | #define __CONFIG_H |
Kevin O'Connor | d9b0659 | 2008-05-06 20:00:12 -0400 | [diff] [blame] | 3 | |
Kevin O'Connor | f076a3e | 2008-02-25 22:25:15 -0500 | [diff] [blame] | 4 | // Configuration definitions. |
| 5 | |
Kevin O'Connor | 6cb8ba9 | 2008-08-17 11:03:24 -0400 | [diff] [blame] | 6 | //#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'Connor | d9b0659 | 2008-05-06 20:00:12 -0400 | [diff] [blame] | 14 | |
Kevin O'Connor | 7061eb6 | 2009-01-04 21:48:22 -0500 | [diff] [blame] | 15 | // Configure for use with KVM. |
| 16 | #define CONFIG_KVM 0 |
Kevin O'Connor | 22dfb85 | 2008-06-07 15:24:19 -0400 | [diff] [blame] | 17 | // Configure as a coreboot payload. |
Kevin O'Connor | f64f0db | 2008-05-18 02:42:58 -0400 | [diff] [blame] | 18 | #define CONFIG_COREBOOT 0 |
| 19 | |
Kevin O'Connor | ac8df8c | 2008-05-24 23:46:33 -0400 | [diff] [blame] | 20 | // Control how verbose debug output is. |
| 21 | #define CONFIG_DEBUG_LEVEL 1 |
| 22 | |
Kevin O'Connor | 0f803e4 | 2008-05-24 23:07:16 -0400 | [diff] [blame] | 23 | // Send debugging information to serial port |
Kevin O'Connor | 1812e20 | 2008-05-07 21:29:50 -0400 | [diff] [blame] | 24 | #define CONFIG_DEBUG_SERIAL 0 |
| 25 | |
Kevin O'Connor | 4096702 | 2008-07-21 22:23:05 -0400 | [diff] [blame] | 26 | // Support for int13 floppy drive access |
Kevin O'Connor | f076a3e | 2008-02-25 22:25:15 -0500 | [diff] [blame] | 27 | #define CONFIG_FLOPPY_SUPPORT 1 |
Kevin O'Connor | 4096702 | 2008-07-21 22:23:05 -0400 | [diff] [blame] | 28 | // Support for IDE disk code |
Kevin O'Connor | 3491e8b | 2008-02-29 00:22:27 -0500 | [diff] [blame] | 29 | #define CONFIG_ATA 1 |
Kevin O'Connor | 32945af | 2009-02-27 21:23:01 -0500 | [diff] [blame] | 30 | // Use 32bit PIO accesses on ATA (minor optimization on PCI transfers) |
| 31 | #define CONFIG_ATA_PIO32 0 |
Kevin O'Connor | d381702 | 2008-07-12 12:46:07 -0400 | [diff] [blame] | 32 | // Support for booting from a CD |
Kevin O'Connor | 180a959 | 2008-03-04 22:50:53 -0500 | [diff] [blame] | 33 | #define CONFIG_CDROM_BOOT 1 |
Kevin O'Connor | d381702 | 2008-07-12 12:46:07 -0400 | [diff] [blame] | 34 | // Support for emulating a boot CD as a floppy/harddrive |
Kevin O'Connor | dfa1650 | 2008-03-22 20:13:08 -0400 | [diff] [blame] | 35 | #define CONFIG_CDROM_EMU 1 |
Kevin O'Connor | 0f803e4 | 2008-05-24 23:07:16 -0400 | [diff] [blame] | 36 | // Support int 1a/b1 PCI BIOS calls |
Kevin O'Connor | a0dc296 | 2008-03-16 14:29:32 -0400 | [diff] [blame] | 37 | #define CONFIG_PCIBIOS 1 |
Kevin O'Connor | 7ba6b30 | 2008-05-26 15:19:33 -0400 | [diff] [blame] | 38 | // Support int 15/53 APM BIOS calls |
| 39 | #define CONFIG_APMBIOS 1 |
Kevin O'Connor | 0c3068d | 2008-12-21 17:51:36 -0500 | [diff] [blame] | 40 | // Support PnP BIOS entry point. |
| 41 | #define CONFIG_PNPBIOS 1 |
Kevin O'Connor | 4096702 | 2008-07-21 22:23:05 -0400 | [diff] [blame] | 42 | // Support int 19/18 system bootup support |
| 43 | #define CONFIG_BOOT 1 |
Kevin O'Connor | 62eea67 | 2008-12-06 11:57:45 -0500 | [diff] [blame] | 44 | // Support int 14 serial port calls |
Kevin O'Connor | 4096702 | 2008-07-21 22:23:05 -0400 | [diff] [blame] | 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'Connor | 32945af | 2009-02-27 21:23:01 -0500 | [diff] [blame] | 50 | // Support calling int155f on each keyboard event |
| 51 | #define CONFIG_KBD_CALL_INT15_4F 1 |
| 52 | // Support for int15c2 mouse calls |
| 53 | #define CONFIG_PS2_MOUSE 1 |
Kevin O'Connor | 6707c30 | 2009-02-28 12:26:39 -0500 | [diff] [blame^] | 54 | // If the target machine has multiple independent root buses, the |
| 55 | // extra buses may be specified here. |
| 56 | #define CONFIG_PCI_ROOT1 0x00 |
| 57 | #define CONFIG_PCI_ROOT2 0x00 |
Kevin O'Connor | 2ddcf18 | 2008-07-21 22:30:38 -0400 | [diff] [blame] | 58 | // Support finding and running option roms during post. |
| 59 | #define CONFIG_OPTIONROMS 1 |
Kevin O'Connor | ceea03c | 2008-11-08 21:36:35 -0500 | [diff] [blame] | 60 | // Set if option roms are already copied to 0xc0000-0xf0000 |
| 61 | #define CONFIG_OPTIONROMS_DEPLOYED 1 |
Kevin O'Connor | 62eea67 | 2008-12-06 11:57:45 -0500 | [diff] [blame] | 62 | // When option roms are not pre-deployed, SeaBIOS can copy an optionrom |
| 63 | // from flash for up to 2 devices. |
| 64 | #define OPTIONROM_BDF_1 0x0000 |
| 65 | #define OPTIONROM_MEM_1 0x00000000 |
| 66 | #define OPTIONROM_BDF_2 0x0000 |
| 67 | #define OPTIONROM_MEM_2 0x00000000 |
Kevin O'Connor | 4096702 | 2008-07-21 22:23:05 -0400 | [diff] [blame] | 68 | // Support an interactive boot menu at end of post. |
| 69 | #define CONFIG_BOOTMENU 1 |
Kevin O'Connor | c65a380 | 2008-03-02 13:58:23 -0500 | [diff] [blame] | 70 | |
Kevin O'Connor | d381702 | 2008-07-12 12:46:07 -0400 | [diff] [blame] | 71 | // Support generation of a PIR table in 0xf000 segment (for emulators) |
| 72 | #define CONFIG_PIRTABLE 1 |
| 73 | // Support generation of MPTable (for emulators) |
| 74 | #define CONFIG_MPTABLE 1 |
Kevin O'Connor | 6cb8ba9 | 2008-08-17 11:03:24 -0400 | [diff] [blame] | 75 | // Support generation of SM BIOS tables (for emulators) |
| 76 | #define CONFIG_SMBIOS 1 |
| 77 | // Support finding a UUID (for smbios) via "magic" outl sequence. |
| 78 | #define CONFIG_UUID_BACKDOOR 1 |
Kevin O'Connor | d381702 | 2008-07-12 12:46:07 -0400 | [diff] [blame] | 79 | // Support generation of ACPI tables (for emulators) |
| 80 | #define CONFIG_ACPI 1 |
Kevin O'Connor | 4096702 | 2008-07-21 22:23:05 -0400 | [diff] [blame] | 81 | // Support bios callbacks specific to via vgabios. |
Kevin O'Connor | bf5ff17 | 2008-11-11 21:34:37 -0500 | [diff] [blame] | 82 | #define CONFIG_VGAHOOKS 0 |
Kevin O'Connor | b24c574 | 2009-01-17 21:52:52 -0500 | [diff] [blame] | 83 | // Support S3 resume handler. |
| 84 | #define CONFIG_S3_RESUME 1 |
| 85 | // define it if the (emulated) hardware supports SMM mode |
| 86 | #define CONFIG_USE_SMM 1 |
Kevin O'Connor | d995b3d | 2008-11-08 13:05:27 -0500 | [diff] [blame] | 87 | // Maximum number of map entries in the e820 map |
| 88 | #define CONFIG_MAX_E820 32 |
Kevin O'Connor | df2c19a | 2009-01-17 20:07:09 -0500 | [diff] [blame] | 89 | // Space to reserve in f-segment for run-time built bios tables. |
Kevin O'Connor | 8e62a90 | 2009-02-08 17:10:48 -0500 | [diff] [blame] | 90 | #define CONFIG_MAX_BIOSTABLE 2048 |
Kevin O'Connor | d381702 | 2008-07-12 12:46:07 -0400 | [diff] [blame] | 91 | |
Kevin O'Connor | bdce35f | 2008-02-26 21:33:14 -0500 | [diff] [blame] | 92 | #define CONFIG_MAX_ATA_INTERFACES 4 |
| 93 | #define CONFIG_MAX_ATA_DEVICES (CONFIG_MAX_ATA_INTERFACES*2) |
Kevin O'Connor | 38fcbfe | 2008-02-25 22:30:47 -0500 | [diff] [blame] | 94 | |
Kevin O'Connor | 438f635 | 2008-03-30 21:46:53 -0400 | [diff] [blame] | 95 | #define CONFIG_ACPI_DATA_SIZE 0x00010000L |
| 96 | |
Kevin O'Connor | 44c631d | 2008-03-02 11:24:36 -0500 | [diff] [blame] | 97 | #define CONFIG_MODEL_ID 0xFC |
| 98 | #define CONFIG_SUBMODEL_ID 0x00 |
| 99 | #define CONFIG_BIOS_REVISION 0x01 |
| 100 | |
Kevin O'Connor | 276d4a9 | 2008-06-11 22:47:01 -0400 | [diff] [blame] | 101 | // Various memory addresses used by the code. |
Kevin O'Connor | 9967ab7 | 2008-12-18 21:57:33 -0500 | [diff] [blame] | 102 | #define BUILD_STACK_ADDR 0x7c00 |
| 103 | #define BUILD_S3RESUME_STACK_ADDR 0x1000 |
| 104 | #define BUILD_AP_BOOT_ADDR 0x10000 |
| 105 | #define BUILD_BIOS_ADDR 0xf0000 |
| 106 | #define BUILD_BIOS_SIZE 0x10000 |
Kevin O'Connor | a06bfb6 | 2008-12-06 19:37:56 -0500 | [diff] [blame] | 107 | // 64 KB used to copy the BIOS to shadow RAM |
Kevin O'Connor | 9967ab7 | 2008-12-18 21:57:33 -0500 | [diff] [blame] | 108 | #define BUILD_BIOS_TMP_ADDR 0x30000 |
Kevin O'Connor | 276d4a9 | 2008-06-11 22:47:01 -0400 | [diff] [blame] | 109 | |
Kevin O'Connor | 9967ab7 | 2008-12-18 21:57:33 -0500 | [diff] [blame] | 110 | #define BUILD_APIC_ADDR 0xfee00000 |
| 111 | #define BUILD_IOAPIC_ADDR 0xfec00000 |
Kevin O'Connor | f5c1161 | 2008-12-14 10:11:45 -0500 | [diff] [blame] | 112 | |
Kevin O'Connor | 9967ab7 | 2008-12-18 21:57:33 -0500 | [diff] [blame] | 113 | #define BUILD_SMM_INIT_ADDR 0x38000 |
| 114 | #define BUILD_SMM_ADDR 0xa8000 |
| 115 | #define BUILD_SMM_SIZE 0x8000 |
Kevin O'Connor | 276d4a9 | 2008-06-11 22:47:01 -0400 | [diff] [blame] | 116 | |
Kevin O'Connor | 1492708 | 2008-11-08 19:07:49 -0500 | [diff] [blame] | 117 | // Important real-mode segments |
Kevin O'Connor | 8c0e372 | 2009-01-02 14:19:43 -0500 | [diff] [blame] | 118 | #define SEG_IVT 0x0000 |
| 119 | #define SEG_BDA 0x0040 |
Kevin O'Connor | 9521e26 | 2008-07-04 13:04:29 -0400 | [diff] [blame] | 120 | #define SEG_BIOS 0xf000 |
Kevin O'Connor | 9521e26 | 2008-07-04 13:04:29 -0400 | [diff] [blame] | 121 | |
Kevin O'Connor | b24c574 | 2009-01-17 21:52:52 -0500 | [diff] [blame] | 122 | // Segment definitions in protected mode (see rombios32_gdt in misc.c) |
Kevin O'Connor | 3085376 | 2009-01-17 18:49:20 -0500 | [diff] [blame] | 123 | #define SEG32_MODE32_CS (1 << 3) |
| 124 | #define SEG32_MODE32_DS (2 << 3) |
| 125 | #define SEG32_MODE16_CS (3 << 3) |
| 126 | #define SEG32_MODE16_DS (4 << 3) |
| 127 | #define SEG32_MODE16BIG_CS (5 << 3) |
| 128 | #define SEG32_MODE16BIG_DS (6 << 3) |
Kevin O'Connor | 1492708 | 2008-11-08 19:07:49 -0500 | [diff] [blame] | 129 | |
Kevin O'Connor | 15c1f22 | 2008-06-12 22:59:43 -0400 | [diff] [blame] | 130 | // Debugging levels. If non-zero and CONFIG_DEBUG_LEVEL is greater |
| 131 | // than the specified value, then the corresponding irq handler will |
| 132 | // report every enter event. |
Kevin O'Connor | c541e1b | 2008-06-21 12:24:14 -0400 | [diff] [blame] | 133 | #define DEBUG_ISR_nmi 1 |
Kevin O'Connor | 15c1f22 | 2008-06-12 22:59:43 -0400 | [diff] [blame] | 134 | #define DEBUG_HDL_05 1 |
Kevin O'Connor | c541e1b | 2008-06-21 12:24:14 -0400 | [diff] [blame] | 135 | #define DEBUG_ISR_08 20 |
| 136 | #define DEBUG_ISR_09 9 |
| 137 | #define DEBUG_ISR_0e 9 |
| 138 | #define DEBUG_HDL_10 20 |
Kevin O'Connor | 15c1f22 | 2008-06-12 22:59:43 -0400 | [diff] [blame] | 139 | #define DEBUG_HDL_11 1 |
| 140 | #define DEBUG_HDL_12 1 |
Kevin O'Connor | c541e1b | 2008-06-21 12:24:14 -0400 | [diff] [blame] | 141 | #define DEBUG_HDL_13 10 |
| 142 | #define DEBUG_HDL_14 1 |
Kevin O'Connor | 15c1f22 | 2008-06-12 22:59:43 -0400 | [diff] [blame] | 143 | #define DEBUG_HDL_15 9 |
Kevin O'Connor | 15c1f22 | 2008-06-12 22:59:43 -0400 | [diff] [blame] | 144 | #define DEBUG_HDL_16 9 |
Kevin O'Connor | c541e1b | 2008-06-21 12:24:14 -0400 | [diff] [blame] | 145 | #define DEBUG_HDL_17 1 |
Kevin O'Connor | 15c1f22 | 2008-06-12 22:59:43 -0400 | [diff] [blame] | 146 | #define DEBUG_HDL_18 1 |
| 147 | #define DEBUG_HDL_19 1 |
| 148 | #define DEBUG_HDL_1a 9 |
Kevin O'Connor | 15c1f22 | 2008-06-12 22:59:43 -0400 | [diff] [blame] | 149 | #define DEBUG_HDL_40 1 |
Kevin O'Connor | c541e1b | 2008-06-21 12:24:14 -0400 | [diff] [blame] | 150 | #define DEBUG_ISR_70 9 |
Kevin O'Connor | 15c1f22 | 2008-06-12 22:59:43 -0400 | [diff] [blame] | 151 | #define DEBUG_ISR_74 9 |
Kevin O'Connor | c541e1b | 2008-06-21 12:24:14 -0400 | [diff] [blame] | 152 | #define DEBUG_ISR_75 1 |
| 153 | #define DEBUG_ISR_76 10 |
Kevin O'Connor | eac894d | 2009-02-05 21:23:39 -0500 | [diff] [blame] | 154 | #define DEBUG_ISR_hwpic1 5 |
| 155 | #define DEBUG_ISR_hwpic2 5 |
Kevin O'Connor | 0c3068d | 2008-12-21 17:51:36 -0500 | [diff] [blame] | 156 | #define DEBUG_HDL_pnp 1 |
Kevin O'Connor | 15c1f22 | 2008-06-12 22:59:43 -0400 | [diff] [blame] | 157 | |
Kevin O'Connor | bdce35f | 2008-02-26 21:33:14 -0500 | [diff] [blame] | 158 | #endif // config.h |