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