xref: /kvmtool/mips/include/kvm/kvm-arch.h (revision b0d56e3c994a0feb3ffb519cecda5c1f6da8b1ab)
1 #ifndef KVM__KVM_ARCH_H
2 #define KVM__KVM_ARCH_H
3 
4 #include <linux/sizes.h>
5 
6 /*
7  * Guest memory map is:
8  *   0x00000000-0x0fffffff : System RAM
9  *   0x10000000-0x1fffffff : I/O (defined by KVM_MMIO_START and KVM_MMIO_SIZE)
10  *   0x20000000-    ...    : System RAM
11  * See also kvm__init_ram().
12  */
13 
14 #define KVM_MMIO_START		0x10000000
15 #define KVM_PCI_CFG_AREA	KVM_MMIO_START
16 #define KVM_PCI_MMIO_AREA	(KVM_MMIO_START + 0x1000000)
17 #define KVM_VIRTIO_MMIO_AREA	(KVM_MMIO_START + 0x2000000)
18 #define KVM_MMIO_SIZE		0x10000000
19 
20 /*
21  * Just for reference. This and the above corresponds to what's used
22  * in mipsvz_page_fault() in kvm_mipsvz.c of the host kernel.
23  */
24 #define KVM_MIPS_IOPORT_AREA	0x1e000000
25 #define KVM_MIPS_IOPORT_SIZE	0x00010000
26 #define KVM_MIPS_IRQCHIP_AREA	0x1e010000
27 #define KVM_MIPS_IRQCHIP_SIZE	0x00010000
28 
29 #define KVM_IRQ_OFFSET		1
30 
31 /*
32  * MIPS-VZ (trap and emulate is 0)
33  */
34 #define KVM_VM_TYPE		1
35 
36 #define KVM_IOEVENTFD_HAS_PIO	0
37 
38 #define MAX_PAGE_SIZE		SZ_64K
39 
40 #include <stdbool.h>
41 
42 #include "linux/types.h"
43 
44 struct kvm_arch {
45 	u64 entry_point;
46 	u64 argc;
47 	u64 argv;
48 	bool is64bit;
49 };
50 
51 #endif /* KVM__KVM_ARCH_H */
52