Loading linux-headers/asm-powerpc/kvm.h +40 −0 Original line number Diff line number Diff line Loading @@ -284,6 +284,11 @@ struct kvm_guest_debug_arch { #define KVM_INTERRUPT_UNSET -2U #define KVM_INTERRUPT_SET_LEVEL -3U #define KVM_CPU_440 1 #define KVM_CPU_E500V2 2 #define KVM_CPU_3S_32 3 #define KVM_CPU_3S_64 4 /* for KVM_CAP_SPAPR_TCE */ struct kvm_create_spapr_tce { __u64 liobn; Loading @@ -295,4 +300,39 @@ struct kvm_allocate_rma { __u64 rma_size; }; struct kvm_book3e_206_tlb_entry { __u32 mas8; __u32 mas1; __u64 mas2; __u64 mas7_3; }; struct kvm_book3e_206_tlb_params { /* * For mmu types KVM_MMU_FSL_BOOKE_NOHV and KVM_MMU_FSL_BOOKE_HV: * * - The number of ways of TLB0 must be a power of two between 2 and * 16. * - TLB1 must be fully associative. * - The size of TLB0 must be a multiple of the number of ways, and * the number of sets must be a power of two. * - The size of TLB1 may not exceed 64 entries. * - TLB0 supports 4 KiB pages. * - The page sizes supported by TLB1 are as indicated by * TLB1CFG (if MMUCFG[MAVN] = 0) or TLB1PS (if MMUCFG[MAVN] = 1) * as returned by KVM_GET_SREGS. * - TLB2 and TLB3 are reserved, and their entries in tlb_sizes[] * and tlb_ways[] must be zero. * * tlb_ways[n] = tlb_sizes[n] means the array is fully associative. * * KVM will adjust TLBnCFG based on the sizes configured here, * though arrays greater than 2048 entries will have TLBnCFG[NENTRY] * set to zero. */ __u32 tlb_sizes[4]; __u32 tlb_ways[4]; __u32 reserved[8]; }; #endif /* __LINUX_KVM_POWERPC_H */ linux-headers/linux/kvm.h +18 −0 Original line number Diff line number Diff line Loading @@ -556,6 +556,7 @@ struct kvm_ppc_pvinfo { #define KVM_CAP_MAX_VCPUS 66 /* returns max vcpus per vm */ #define KVM_CAP_PPC_HIOR 67 #define KVM_CAP_PPC_PAPR 68 #define KVM_CAP_SW_TLB 69 #ifdef KVM_CAP_IRQ_ROUTING Loading Loading @@ -635,6 +636,21 @@ struct kvm_clock_data { __u32 pad[9]; }; #define KVM_MMU_FSL_BOOKE_NOHV 0 #define KVM_MMU_FSL_BOOKE_HV 1 struct kvm_config_tlb { __u64 params; __u64 array; __u32 mmu_type; __u32 array_len; }; struct kvm_dirty_tlb { __u64 bitmap; __u32 num_dirty; }; /* * ioctls for VM fds */ Loading Loading @@ -761,6 +777,8 @@ struct kvm_clock_data { #define KVM_CREATE_SPAPR_TCE _IOW(KVMIO, 0xa8, struct kvm_create_spapr_tce) /* Available with KVM_CAP_RMA */ #define KVM_ALLOCATE_RMA _IOR(KVMIO, 0xa9, struct kvm_allocate_rma) /* Available with KVM_CAP_SW_TLB */ #define KVM_DIRTY_TLB _IOW(KVMIO, 0xaa, struct kvm_dirty_tlb) #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0) Loading Loading
linux-headers/asm-powerpc/kvm.h +40 −0 Original line number Diff line number Diff line Loading @@ -284,6 +284,11 @@ struct kvm_guest_debug_arch { #define KVM_INTERRUPT_UNSET -2U #define KVM_INTERRUPT_SET_LEVEL -3U #define KVM_CPU_440 1 #define KVM_CPU_E500V2 2 #define KVM_CPU_3S_32 3 #define KVM_CPU_3S_64 4 /* for KVM_CAP_SPAPR_TCE */ struct kvm_create_spapr_tce { __u64 liobn; Loading @@ -295,4 +300,39 @@ struct kvm_allocate_rma { __u64 rma_size; }; struct kvm_book3e_206_tlb_entry { __u32 mas8; __u32 mas1; __u64 mas2; __u64 mas7_3; }; struct kvm_book3e_206_tlb_params { /* * For mmu types KVM_MMU_FSL_BOOKE_NOHV and KVM_MMU_FSL_BOOKE_HV: * * - The number of ways of TLB0 must be a power of two between 2 and * 16. * - TLB1 must be fully associative. * - The size of TLB0 must be a multiple of the number of ways, and * the number of sets must be a power of two. * - The size of TLB1 may not exceed 64 entries. * - TLB0 supports 4 KiB pages. * - The page sizes supported by TLB1 are as indicated by * TLB1CFG (if MMUCFG[MAVN] = 0) or TLB1PS (if MMUCFG[MAVN] = 1) * as returned by KVM_GET_SREGS. * - TLB2 and TLB3 are reserved, and their entries in tlb_sizes[] * and tlb_ways[] must be zero. * * tlb_ways[n] = tlb_sizes[n] means the array is fully associative. * * KVM will adjust TLBnCFG based on the sizes configured here, * though arrays greater than 2048 entries will have TLBnCFG[NENTRY] * set to zero. */ __u32 tlb_sizes[4]; __u32 tlb_ways[4]; __u32 reserved[8]; }; #endif /* __LINUX_KVM_POWERPC_H */
linux-headers/linux/kvm.h +18 −0 Original line number Diff line number Diff line Loading @@ -556,6 +556,7 @@ struct kvm_ppc_pvinfo { #define KVM_CAP_MAX_VCPUS 66 /* returns max vcpus per vm */ #define KVM_CAP_PPC_HIOR 67 #define KVM_CAP_PPC_PAPR 68 #define KVM_CAP_SW_TLB 69 #ifdef KVM_CAP_IRQ_ROUTING Loading Loading @@ -635,6 +636,21 @@ struct kvm_clock_data { __u32 pad[9]; }; #define KVM_MMU_FSL_BOOKE_NOHV 0 #define KVM_MMU_FSL_BOOKE_HV 1 struct kvm_config_tlb { __u64 params; __u64 array; __u32 mmu_type; __u32 array_len; }; struct kvm_dirty_tlb { __u64 bitmap; __u32 num_dirty; }; /* * ioctls for VM fds */ Loading Loading @@ -761,6 +777,8 @@ struct kvm_clock_data { #define KVM_CREATE_SPAPR_TCE _IOW(KVMIO, 0xa8, struct kvm_create_spapr_tce) /* Available with KVM_CAP_RMA */ #define KVM_ALLOCATE_RMA _IOR(KVMIO, 0xa9, struct kvm_allocate_rma) /* Available with KVM_CAP_SW_TLB */ #define KVM_DIRTY_TLB _IOW(KVMIO, 0xaa, struct kvm_dirty_tlb) #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0) Loading