KVM: ppc: e500: Move to Book-3e MMU definitions
authorLiu Yu <yu.liu@freescale.com>
Fri, 5 Jun 2009 06:54:29 +0000 (14:54 +0800)
committerAvi Kivity <avi@redhat.com>
Thu, 10 Sep 2009 05:32:47 +0000 (08:32 +0300)
According to commit 70fe3af8403f85196bb74f22ce4813db7dfedc1a.

Signed-off-by: Liu Yu <yu.liu@freescale.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/powerpc/kvm/e500_tlb.c
arch/powerpc/kvm/e500_tlb.h

index 0e773fc..a2048ac 100644 (file)
@@ -269,7 +269,7 @@ static inline void kvmppc_e500_deliver_tlb_miss(struct kvm_vcpu *vcpu,
        tlbsel = (vcpu_e500->mas4 >> 28) & 0x1;
        victim = (tlbsel == 0) ? tlb0_get_next_victim(vcpu_e500) : 0;
        pidsel = (vcpu_e500->mas4 >> 16) & 0xf;
-       tsized = (vcpu_e500->mas4 >> 8) & 0xf;
+       tsized = (vcpu_e500->mas4 >> 7) & 0x1f;
 
        vcpu_e500->mas0 = MAS0_TLBSEL(tlbsel) | MAS0_ESEL(victim)
                | MAS0_NV(vcpu_e500->guest_tlb_nv[tlbsel]);
@@ -309,7 +309,7 @@ static inline void kvmppc_e500_shadow_map(struct kvmppc_vcpu_e500 *vcpu_e500,
        vcpu_e500->shadow_pages[tlbsel][esel] = new_page;
 
        /* Force TS=1 IPROT=0 TSIZE=4KB for all guest mappings. */
-       stlbe->mas1 = MAS1_TSIZE(BOOKE_PAGESZ_4K)
+       stlbe->mas1 = MAS1_TSIZE(BOOK3E_PAGESZ_4K)
                | MAS1_TID(get_tlb_tid(gtlbe)) | MAS1_TS | MAS1_VALID;
        stlbe->mas2 = (gvaddr & MAS2_EPN)
                | e500_shadow_mas2_attrib(gtlbe->mas2,
@@ -545,7 +545,7 @@ int kvmppc_e500_emul_tlbwe(struct kvm_vcpu *vcpu)
                case 0:
                        /* TLB0 */
                        gtlbe->mas1 &= ~MAS1_TSIZE(~0);
-                       gtlbe->mas1 |= MAS1_TSIZE(BOOKE_PAGESZ_4K);
+                       gtlbe->mas1 |= MAS1_TSIZE(BOOK3E_PAGESZ_4K);
 
                        stlbsel = 0;
                        sesel = kvmppc_e500_stlbe_map(vcpu_e500, 0, esel);
@@ -679,14 +679,14 @@ void kvmppc_e500_tlb_setup(struct kvmppc_vcpu_e500 *vcpu_e500)
 
        /* Insert large initial mapping for guest. */
        tlbe = &vcpu_e500->guest_tlb[1][0];
-       tlbe->mas1 = MAS1_VALID | MAS1_TSIZE(BOOKE_PAGESZ_256M);
+       tlbe->mas1 = MAS1_VALID | MAS1_TSIZE(BOOK3E_PAGESZ_256M);
        tlbe->mas2 = 0;
        tlbe->mas3 = E500_TLB_SUPER_PERM_MASK;
        tlbe->mas7 = 0;
 
        /* 4K map for serial output. Used by kernel wrapper. */
        tlbe = &vcpu_e500->guest_tlb[1][1];
-       tlbe->mas1 = MAS1_VALID | MAS1_TSIZE(BOOKE_PAGESZ_4K);
+       tlbe->mas1 = MAS1_VALID | MAS1_TSIZE(BOOK3E_PAGESZ_4K);
        tlbe->mas2 = (0xe0004500 & 0xFFFFF000) | MAS2_I | MAS2_G;
        tlbe->mas3 = (0xe0004500 & 0xFFFFF000) | E500_TLB_SUPER_PERM_MASK;
        tlbe->mas7 = 0;
index 45b064b..d28e301 100644 (file)
@@ -16,7 +16,7 @@
 #define __KVM_E500_TLB_H__
 
 #include <linux/kvm_host.h>
-#include <asm/mmu-fsl-booke.h>
+#include <asm/mmu-book3e.h>
 #include <asm/tlb.h>
 #include <asm/kvm_e500.h>
 
@@ -59,7 +59,7 @@ extern void kvmppc_e500_tlb_setup(struct kvmppc_vcpu_e500 *);
 /* TLB helper functions */
 static inline unsigned int get_tlb_size(const struct tlbe *tlbe)
 {
-       return (tlbe->mas1 >> 8) & 0xf;
+       return (tlbe->mas1 >> 7) & 0x1f;
 }
 
 static inline gva_t get_tlb_eaddr(const struct tlbe *tlbe)
@@ -70,7 +70,7 @@ static inline gva_t get_tlb_eaddr(const struct tlbe *tlbe)
 static inline u64 get_tlb_bytes(const struct tlbe *tlbe)
 {
        unsigned int pgsize = get_tlb_size(tlbe);
-       return 1ULL << 10 << (pgsize << 1);
+       return 1ULL << 10 << pgsize;
 }
 
 static inline gva_t get_tlb_end(const struct tlbe *tlbe)