xref: /kvmtool/mips/include/kvm/kvm-arch.h (revision b0d56e3c994a0feb3ffb519cecda5c1f6da8b1ab)
17281a8dbSDavid Daney #ifndef KVM__KVM_ARCH_H
27281a8dbSDavid Daney #define KVM__KVM_ARCH_H
37281a8dbSDavid Daney 
4*39181fc6SAlexandru Elisei #include <linux/sizes.h>
557896feeSAndreas Herrmann 
657896feeSAndreas Herrmann /*
757896feeSAndreas Herrmann  * Guest memory map is:
857896feeSAndreas Herrmann  *   0x00000000-0x0fffffff : System RAM
957896feeSAndreas Herrmann  *   0x10000000-0x1fffffff : I/O (defined by KVM_MMIO_START and KVM_MMIO_SIZE)
1057896feeSAndreas Herrmann  *   0x20000000-    ...    : System RAM
1157896feeSAndreas Herrmann  * See also kvm__init_ram().
1257896feeSAndreas Herrmann  */
1357896feeSAndreas Herrmann 
147281a8dbSDavid Daney #define KVM_MMIO_START		0x10000000
157281a8dbSDavid Daney #define KVM_PCI_CFG_AREA	KVM_MMIO_START
167281a8dbSDavid Daney #define KVM_PCI_MMIO_AREA	(KVM_MMIO_START + 0x1000000)
177281a8dbSDavid Daney #define KVM_VIRTIO_MMIO_AREA	(KVM_MMIO_START + 0x2000000)
1857896feeSAndreas Herrmann #define KVM_MMIO_SIZE		0x10000000
197281a8dbSDavid Daney 
207281a8dbSDavid Daney /*
217281a8dbSDavid Daney  * Just for reference. This and the above corresponds to what's used
227281a8dbSDavid Daney  * in mipsvz_page_fault() in kvm_mipsvz.c of the host kernel.
237281a8dbSDavid Daney  */
247281a8dbSDavid Daney #define KVM_MIPS_IOPORT_AREA	0x1e000000
257281a8dbSDavid Daney #define KVM_MIPS_IOPORT_SIZE	0x00010000
267281a8dbSDavid Daney #define KVM_MIPS_IRQCHIP_AREA	0x1e010000
277281a8dbSDavid Daney #define KVM_MIPS_IRQCHIP_SIZE	0x00010000
287281a8dbSDavid Daney 
297281a8dbSDavid Daney #define KVM_IRQ_OFFSET		1
307281a8dbSDavid Daney 
31b5a5cd67SAndreas Herrmann /*
32b5a5cd67SAndreas Herrmann  * MIPS-VZ (trap and emulate is 0)
33b5a5cd67SAndreas Herrmann  */
34b5a5cd67SAndreas Herrmann #define KVM_VM_TYPE		1
35b5a5cd67SAndreas Herrmann 
36ed83730fSJean-Philippe Brucker #define KVM_IOEVENTFD_HAS_PIO	0
37ed83730fSJean-Philippe Brucker 
38*39181fc6SAlexandru Elisei #define MAX_PAGE_SIZE		SZ_64K
39*39181fc6SAlexandru Elisei 
407281a8dbSDavid Daney #include <stdbool.h>
417281a8dbSDavid Daney 
427281a8dbSDavid Daney #include "linux/types.h"
437281a8dbSDavid Daney 
447281a8dbSDavid Daney struct kvm_arch {
457281a8dbSDavid Daney 	u64 entry_point;
467281a8dbSDavid Daney 	u64 argc;
477281a8dbSDavid Daney 	u64 argv;
487281a8dbSDavid Daney 	bool is64bit;
497281a8dbSDavid Daney };
507281a8dbSDavid Daney 
517281a8dbSDavid Daney #endif /* KVM__KVM_ARCH_H */
52