blob: 9abe355b6c47328229e46dc3691147d96cc97cdf [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'Connor3dba4c22011-01-29 11:26:54 -05004#include "autoconf.h"
Kevin O'Connor713be892011-01-26 21:19:25 -05005
Kevin O'Connorf076a3e2008-02-25 22:25:15 -05006// Configuration definitions.
7
Kevin O'Connore52ad392013-02-20 23:48:22 -05008//#define BUILD_APPNAME "QEMU"
9//#define BUILD_CPUNAME8 "QEMUCPU "
10//#define BUILD_APPNAME6 "QEMU "
11//#define BUILD_APPNAME4 "QEMU"
12#define BUILD_APPNAME "Bochs"
13#define BUILD_CPUNAME8 "BOCHSCPU"
14#define BUILD_APPNAME6 "BOCHS "
15#define BUILD_APPNAME4 "BXPC"
Kevin O'Connord9b06592008-05-06 20:00:12 -040016
Kevin O'Connord995b3d2008-11-08 13:05:27 -050017// Maximum number of map entries in the e820 map
Kevin O'Connore52ad392013-02-20 23:48:22 -050018#define BUILD_MAX_E820 32
Kevin O'Connor2929c352009-07-25 13:48:27 -040019// Space to reserve in high-memory for tables
Gerd Hoffmanndc88f9b2022-04-25 09:25:31 +020020#define BUILD_MIN_HIGHTABLE (256*1024)
21#define BUILD_MAX_HIGHTABLE (16*1024*1024)
Kevin O'Connorc892b132009-08-11 21:59:37 -040022// Largest supported externaly facing drive id
Kevin O'Connore52ad392013-02-20 23:48:22 -050023#define BUILD_MAX_EXTDRIVE 16
Kevin O'Connor7859eda2011-09-20 19:40:28 -040024// Number of bytes the smbios may be and still live in the f-segment
25#define BUILD_MAX_SMBIOS_FSEG 600
Kevin O'Connor9ee2e262015-08-03 10:16:39 -040026// Maximum number of bytes the mptable may be and still be copied to f-segment
27#define BUILD_MAX_MPTABLE_FSEG 600
Kevin O'Connor38fcbfe2008-02-25 22:30:47 -050028
Kevin O'Connore52ad392013-02-20 23:48:22 -050029#define BUILD_MODEL_ID 0xFC
30#define BUILD_SUBMODEL_ID 0x00
31#define BUILD_BIOS_REVISION 0x01
Kevin O'Connor44c631d2008-03-02 11:24:36 -050032
Kevin O'Connor276d4a92008-06-11 22:47:01 -040033// Various memory addresses used by the code.
Kevin O'Connor494dfc62009-11-20 09:22:19 -050034#define BUILD_STACK_ADDR 0x7000
Kevin O'Connor9967ab72008-12-18 21:57:33 -050035#define BUILD_S3RESUME_STACK_ADDR 0x1000
36#define BUILD_AP_BOOT_ADDR 0x10000
Kevin O'Connorf416fe92009-09-24 20:51:55 -040037#define BUILD_EBDA_MINIMUM 0x90000
38#define BUILD_LOWRAM_END 0xa0000
Kevin O'Connore7739302009-07-26 19:16:09 -040039#define BUILD_ROM_START 0xc0000
Kevin O'Connor9967ab72008-12-18 21:57:33 -050040#define BUILD_BIOS_ADDR 0xf0000
41#define BUILD_BIOS_SIZE 0x10000
Kevin O'Connor46b82622012-05-13 12:10:30 -040042#define BUILD_EXTRA_STACK_SIZE 0x800
Kevin O'Connor31bcda22014-05-28 13:33:50 -040043#define BUILD_SMM_INIT_ADDR 0x30000
44#define BUILD_SMM_ADDR 0xa0000
Kevin O'Connor276d4a92008-06-11 22:47:01 -040045
Kevin O'Connor7859eda2011-09-20 19:40:28 -040046#define BUILD_PCIMEM_START 0xe0000000
47#define BUILD_PCIMEM_END 0xfec00000 /* IOAPIC is mapped at */
Alexey Koroleve5e5f962012-04-26 17:01:59 +120048#define BUILD_PCIMEM64_START 0x8000000000ULL
49#define BUILD_PCIMEM64_END 0x10000000000ULL
Kevin O'Connor7859eda2011-09-20 19:40:28 -040050
51#define BUILD_IOAPIC_ADDR 0xfec00000
Eduardo Habkoste39b9382012-07-25 15:45:29 -030052#define BUILD_IOAPIC_ID 0
Kevin O'Connor7859eda2011-09-20 19:40:28 -040053#define BUILD_HPET_ADDRESS 0xfed00000
54#define BUILD_APIC_ADDR 0xfee00000
Kevin O'Connor32f03872011-08-03 20:45:32 -040055
Kevin O'Connord8388152013-03-18 20:26:54 -040056// PCI IRQS
Kevin O'Connor028f3482014-04-11 12:08:33 -040057#define BUILD_PCI_IRQS ((1<<5) | (1<<9) | (1<<10) | (1<<11))
Kevin O'Connord8388152013-03-18 20:26:54 -040058
Kevin O'Connor14927082008-11-08 19:07:49 -050059// Important real-mode segments
Kevin O'Connor8c0e3722009-01-02 14:19:43 -050060#define SEG_IVT 0x0000
61#define SEG_BDA 0x0040
Kevin O'Connor9521e262008-07-04 13:04:29 -040062#define SEG_BIOS 0xf000
Kevin O'Connor9521e262008-07-04 13:04:29 -040063
Kevin O'Connorb24c5742009-01-17 21:52:52 -050064// Segment definitions in protected mode (see rombios32_gdt in misc.c)
Kevin O'Connor30853762009-01-17 18:49:20 -050065#define SEG32_MODE32_CS (1 << 3)
66#define SEG32_MODE32_DS (2 << 3)
67#define SEG32_MODE16_CS (3 << 3)
68#define SEG32_MODE16_DS (4 << 3)
69#define SEG32_MODE16BIG_CS (5 << 3)
70#define SEG32_MODE16BIG_DS (6 << 3)
Kevin O'Connor14927082008-11-08 19:07:49 -050071
Kevin O'Connor15c1f222008-06-12 22:59:43 -040072// Debugging levels. If non-zero and CONFIG_DEBUG_LEVEL is greater
73// than the specified value, then the corresponding irq handler will
74// report every enter event.
Kevin O'Connor75f49b32009-03-07 00:07:24 -050075#define DEBUG_ISR_02 1
Kevin O'Connor15c1f222008-06-12 22:59:43 -040076#define DEBUG_HDL_05 1
Kevin O'Connorc541e1b2008-06-21 12:24:14 -040077#define DEBUG_ISR_08 20
78#define DEBUG_ISR_09 9
79#define DEBUG_ISR_0e 9
Kevin O'Connordfefeb52009-12-13 13:04:17 -050080#define DEBUG_HDL_11 2
81#define DEBUG_HDL_12 2
Kevin O'Connorc541e1b2008-06-21 12:24:14 -040082#define DEBUG_HDL_13 10
Kevin O'Connordfefeb52009-12-13 13:04:17 -050083#define DEBUG_HDL_14 2
Kevin O'Connor15c1f222008-06-12 22:59:43 -040084#define DEBUG_HDL_15 9
Kevin O'Connor15c1f222008-06-12 22:59:43 -040085#define DEBUG_HDL_16 9
Kevin O'Connordfefeb52009-12-13 13:04:17 -050086#define DEBUG_HDL_17 2
Kevin O'Connor15c1f222008-06-12 22:59:43 -040087#define DEBUG_HDL_18 1
88#define DEBUG_HDL_19 1
89#define DEBUG_HDL_1a 9
Kevin O'Connor15c1f222008-06-12 22:59:43 -040090#define DEBUG_HDL_40 1
Kevin O'Connorc541e1b2008-06-21 12:24:14 -040091#define DEBUG_ISR_70 9
Kevin O'Connor15c1f222008-06-12 22:59:43 -040092#define DEBUG_ISR_74 9
Kevin O'Connorc541e1b2008-06-21 12:24:14 -040093#define DEBUG_ISR_75 1
94#define DEBUG_ISR_76 10
Kevin O'Connoreac894d2009-02-05 21:23:39 -050095#define DEBUG_ISR_hwpic1 5
96#define DEBUG_ISR_hwpic2 5
Kevin O'Connorf4c511c2014-04-07 19:49:12 -040097#define DEBUG_HDL_smi 9
Kevin O'Connor0673b782014-05-24 10:49:50 -040098#define DEBUG_HDL_smp 1
Kevin O'Connor0c3068d2008-12-21 17:51:36 -050099#define DEBUG_HDL_pnp 1
Kevin O'Connore54ee382009-07-26 19:33:13 -0400100#define DEBUG_HDL_pmm 1
Kevin O'Connor922aa1b2013-03-02 04:02:11 -0500101#define DEBUG_HDL_pcibios 9
Kevin O'Connorc0031482010-01-01 13:03:17 -0500102#define DEBUG_HDL_apm 9
Kevin O'Connordfefeb52009-12-13 13:04:17 -0500103
104#define DEBUG_unimplemented 2
105#define DEBUG_invalid 3
Kevin O'Connor98032802009-12-09 20:18:31 -0500106#define DEBUG_thread 2
Stefan Bergerb310dfa2015-03-23 14:22:16 -0400107#define DEBUG_tcg 20
Kevin O'Connor15c1f222008-06-12 22:59:43 -0400108
Kevin O'Connorbdce35f2008-02-26 21:33:14 -0500109#endif // config.h