xref: /kvmtool/mips/include/kvm/kvm-arch.h (revision 57896feeda9f182b6d423a3c6dcc142d258a1703)
17281a8dbSDavid Daney #ifndef KVM__KVM_ARCH_H
27281a8dbSDavid Daney #define KVM__KVM_ARCH_H
37281a8dbSDavid Daney 
4*57896feeSAndreas Herrmann 
5*57896feeSAndreas Herrmann /*
6*57896feeSAndreas Herrmann  * Guest memory map is:
7*57896feeSAndreas Herrmann  *   0x00000000-0x0fffffff : System RAM
8*57896feeSAndreas Herrmann  *   0x10000000-0x1fffffff : I/O (defined by KVM_MMIO_START and KVM_MMIO_SIZE)
9*57896feeSAndreas Herrmann  *   0x20000000-    ...    : System RAM
10*57896feeSAndreas Herrmann  * See also kvm__init_ram().
11*57896feeSAndreas Herrmann  */
12*57896feeSAndreas Herrmann 
137281a8dbSDavid Daney #define KVM_MMIO_START		0x10000000
147281a8dbSDavid Daney #define KVM_PCI_CFG_AREA	KVM_MMIO_START
157281a8dbSDavid Daney #define KVM_PCI_MMIO_AREA	(KVM_MMIO_START + 0x1000000)
167281a8dbSDavid Daney #define KVM_VIRTIO_MMIO_AREA	(KVM_MMIO_START + 0x2000000)
17*57896feeSAndreas Herrmann #define KVM_MMIO_SIZE		0x10000000
187281a8dbSDavid Daney 
197281a8dbSDavid Daney /*
207281a8dbSDavid Daney  * Just for reference. This and the above corresponds to what's used
217281a8dbSDavid Daney  * in mipsvz_page_fault() in kvm_mipsvz.c of the host kernel.
227281a8dbSDavid Daney  */
237281a8dbSDavid Daney #define KVM_MIPS_IOPORT_AREA	0x1e000000
247281a8dbSDavid Daney #define KVM_MIPS_IOPORT_SIZE	0x00010000
257281a8dbSDavid Daney #define KVM_MIPS_IRQCHIP_AREA	0x1e010000
267281a8dbSDavid Daney #define KVM_MIPS_IRQCHIP_SIZE	0x00010000
277281a8dbSDavid Daney 
287281a8dbSDavid Daney #define KVM_IRQ_OFFSET		1
297281a8dbSDavid Daney 
30b5a5cd67SAndreas Herrmann /*
31b5a5cd67SAndreas Herrmann  * MIPS-VZ (trap and emulate is 0)
32b5a5cd67SAndreas Herrmann  */
33b5a5cd67SAndreas Herrmann #define KVM_VM_TYPE		1
34b5a5cd67SAndreas Herrmann 
357281a8dbSDavid Daney #define VIRTIO_DEFAULT_TRANS(kvm)	VIRTIO_PCI
367281a8dbSDavid Daney 
377281a8dbSDavid Daney #include <stdbool.h>
387281a8dbSDavid Daney 
397281a8dbSDavid Daney #include "linux/types.h"
407281a8dbSDavid Daney 
417281a8dbSDavid Daney struct kvm_arch {
427281a8dbSDavid Daney 	u64 entry_point;
437281a8dbSDavid Daney 	u64 argc;
447281a8dbSDavid Daney 	u64 argv;
457281a8dbSDavid Daney 	bool is64bit;
467281a8dbSDavid Daney };
477281a8dbSDavid Daney 
487281a8dbSDavid Daney #endif /* KVM__KVM_ARCH_H */
49