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 | 22dfb85 | 2008-06-07 15:24:19 -0400 | [diff] [blame] | 15 | // Configure as a coreboot payload. |
Kevin O'Connor | f64f0db | 2008-05-18 02:42:58 -0400 | [diff] [blame] | 16 | #define CONFIG_COREBOOT 0 |
| 17 | |
Kevin O'Connor | ac8df8c | 2008-05-24 23:46:33 -0400 | [diff] [blame] | 18 | // Control how verbose debug output is. |
| 19 | #define CONFIG_DEBUG_LEVEL 1 |
| 20 | |
Kevin O'Connor | 0f803e4 | 2008-05-24 23:07:16 -0400 | [diff] [blame] | 21 | // Send debugging information to serial port |
Kevin O'Connor | 1812e20 | 2008-05-07 21:29:50 -0400 | [diff] [blame] | 22 | #define CONFIG_DEBUG_SERIAL 0 |
| 23 | |
Kevin O'Connor | 4096702 | 2008-07-21 22:23:05 -0400 | [diff] [blame] | 24 | // Support for int13 floppy drive access |
Kevin O'Connor | f076a3e | 2008-02-25 22:25:15 -0500 | [diff] [blame] | 25 | #define CONFIG_FLOPPY_SUPPORT 1 |
Kevin O'Connor | 4096702 | 2008-07-21 22:23:05 -0400 | [diff] [blame] | 26 | // Support for int15c2 mouse calls |
Kevin O'Connor | c65a380 | 2008-03-02 13:58:23 -0500 | [diff] [blame] | 27 | #define CONFIG_PS2_MOUSE 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 | 4096702 | 2008-07-21 22:23:05 -0400 | [diff] [blame] | 30 | // Support calling int155f on each keyboard press |
Kevin O'Connor | 38fcbfe | 2008-02-25 22:30:47 -0500 | [diff] [blame] | 31 | #define CONFIG_KBD_CALL_INT15_4F 1 |
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 | cde7a58 | 2008-08-17 11:08:46 -0400 | [diff] [blame] | 38 | // Maximum number of PCI busses. |
| 39 | #define CONFIG_PCI_BUS_COUNT 2 |
Kevin O'Connor | 7ba6b30 | 2008-05-26 15:19:33 -0400 | [diff] [blame] | 40 | // Support int 15/53 APM BIOS calls |
| 41 | #define CONFIG_APMBIOS 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 |
| 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'Connor | 2ddcf18 | 2008-07-21 22:30:38 -0400 | [diff] [blame] | 50 | // Support finding and running option roms during post. |
| 51 | #define CONFIG_OPTIONROMS 1 |
Kevin O'Connor | 4096702 | 2008-07-21 22:23:05 -0400 | [diff] [blame] | 52 | // Support an interactive boot menu at end of post. |
| 53 | #define CONFIG_BOOTMENU 1 |
Kevin O'Connor | c65a380 | 2008-03-02 13:58:23 -0500 | [diff] [blame] | 54 | |
Kevin O'Connor | d381702 | 2008-07-12 12:46:07 -0400 | [diff] [blame] | 55 | // 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'Connor | 6cb8ba9 | 2008-08-17 11:03:24 -0400 | [diff] [blame] | 59 | // 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'Connor | d381702 | 2008-07-12 12:46:07 -0400 | [diff] [blame] | 63 | // Support generation of ACPI tables (for emulators) |
| 64 | #define CONFIG_ACPI 1 |
Kevin O'Connor | 4096702 | 2008-07-21 22:23:05 -0400 | [diff] [blame] | 65 | // Support bios callbacks specific to via vgabios. |
| 66 | #define CONFIG_VGAHOOKS 1 |
Kevin O'Connor | d995b3d | 2008-11-08 13:05:27 -0500 | [diff] [blame] | 67 | // Maximum number of map entries in the e820 map |
| 68 | #define CONFIG_MAX_E820 32 |
Kevin O'Connor | d381702 | 2008-07-12 12:46:07 -0400 | [diff] [blame] | 69 | |
Kevin O'Connor | d9b0659 | 2008-05-06 20:00:12 -0400 | [diff] [blame] | 70 | /* define it if the (emulated) hardware supports SMM mode */ |
| 71 | #define CONFIG_USE_SMM 1 |
| 72 | |
Kevin O'Connor | bdce35f | 2008-02-26 21:33:14 -0500 | [diff] [blame] | 73 | #define CONFIG_MAX_ATA_INTERFACES 4 |
| 74 | #define CONFIG_MAX_ATA_DEVICES (CONFIG_MAX_ATA_INTERFACES*2) |
Kevin O'Connor | 38fcbfe | 2008-02-25 22:30:47 -0500 | [diff] [blame] | 75 | |
Kevin O'Connor | 438f635 | 2008-03-30 21:46:53 -0400 | [diff] [blame] | 76 | #define CONFIG_ACPI_DATA_SIZE 0x00010000L |
| 77 | |
Kevin O'Connor | 44c631d | 2008-03-02 11:24:36 -0500 | [diff] [blame] | 78 | #define CONFIG_MODEL_ID 0xFC |
| 79 | #define CONFIG_SUBMODEL_ID 0x00 |
| 80 | #define CONFIG_BIOS_REVISION 0x01 |
| 81 | |
Kevin O'Connor | 276d4a9 | 2008-06-11 22:47:01 -0400 | [diff] [blame] | 82 | // 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'Connor | e3677b1 | 2008-07-04 15:29:23 -0400 | [diff] [blame] | 86 | #define BUILD_BIOS_ADDR 0xf0000 |
| 87 | #define BUILD_BIOS_SIZE 0x10000 |
Kevin O'Connor | 276d4a9 | 2008-06-11 22:47:01 -0400 | [diff] [blame] | 88 | /* 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'Connor | 7453453 | 2008-05-12 18:28:58 -0400 | [diff] [blame] | 95 | // Start of fixed addresses in 0xf0000 segment. |
Kevin O'Connor | 276d4a9 | 2008-06-11 22:47:01 -0400 | [diff] [blame] | 96 | #define BUILD_START_FIXED 0xe050 |
Kevin O'Connor | 7453453 | 2008-05-12 18:28:58 -0400 | [diff] [blame] | 97 | |
Kevin O'Connor | 1492708 | 2008-11-08 19:07:49 -0500 | [diff] [blame^] | 98 | // Important real-mode segments |
Kevin O'Connor | 9521e26 | 2008-07-04 13:04:29 -0400 | [diff] [blame] | 99 | #define SEG_BIOS 0xf000 |
| 100 | #define SEG_EBDA 0x9fc0 |
| 101 | #define SEG_BDA 0x0000 |
| 102 | |
Kevin O'Connor | 1492708 | 2008-11-08 19:07:49 -0500 | [diff] [blame^] | 103 | // 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'Connor | 15c1f22 | 2008-06-12 22:59:43 -0400 | [diff] [blame] | 109 | // 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'Connor | c541e1b | 2008-06-21 12:24:14 -0400 | [diff] [blame] | 112 | #define DEBUG_ISR_nmi 1 |
Kevin O'Connor | 15c1f22 | 2008-06-12 22:59:43 -0400 | [diff] [blame] | 113 | #define DEBUG_HDL_05 1 |
Kevin O'Connor | c541e1b | 2008-06-21 12:24:14 -0400 | [diff] [blame] | 114 | #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'Connor | 15c1f22 | 2008-06-12 22:59:43 -0400 | [diff] [blame] | 118 | #define DEBUG_HDL_11 1 |
| 119 | #define DEBUG_HDL_12 1 |
Kevin O'Connor | c541e1b | 2008-06-21 12:24:14 -0400 | [diff] [blame] | 120 | #define DEBUG_HDL_13 10 |
| 121 | #define DEBUG_HDL_14 1 |
Kevin O'Connor | 15c1f22 | 2008-06-12 22:59:43 -0400 | [diff] [blame] | 122 | #define DEBUG_HDL_15 9 |
Kevin O'Connor | 15c1f22 | 2008-06-12 22:59:43 -0400 | [diff] [blame] | 123 | #define DEBUG_HDL_16 9 |
Kevin O'Connor | c541e1b | 2008-06-21 12:24:14 -0400 | [diff] [blame] | 124 | #define DEBUG_HDL_17 1 |
Kevin O'Connor | 15c1f22 | 2008-06-12 22:59:43 -0400 | [diff] [blame] | 125 | #define DEBUG_HDL_18 1 |
| 126 | #define DEBUG_HDL_19 1 |
| 127 | #define DEBUG_HDL_1a 9 |
Kevin O'Connor | c541e1b | 2008-06-21 12:24:14 -0400 | [diff] [blame] | 128 | #define DEBUG_ISR_1c 20 |
Kevin O'Connor | 15c1f22 | 2008-06-12 22:59:43 -0400 | [diff] [blame] | 129 | #define DEBUG_HDL_40 1 |
Kevin O'Connor | c541e1b | 2008-06-21 12:24:14 -0400 | [diff] [blame] | 130 | #define DEBUG_ISR_70 9 |
Kevin O'Connor | 15c1f22 | 2008-06-12 22:59:43 -0400 | [diff] [blame] | 131 | #define DEBUG_ISR_74 9 |
Kevin O'Connor | c541e1b | 2008-06-21 12:24:14 -0400 | [diff] [blame] | 132 | #define DEBUG_ISR_75 1 |
| 133 | #define DEBUG_ISR_76 10 |
| 134 | #define DEBUG_ISR_hwirq 30 |
Kevin O'Connor | 15c1f22 | 2008-06-12 22:59:43 -0400 | [diff] [blame] | 135 | |
Kevin O'Connor | bdce35f | 2008-02-26 21:33:14 -0500 | [diff] [blame] | 136 | #endif // config.h |