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