Home
last modified time | relevance | path

Searched refs:tlbe (Results 1 – 4 of 4) sorted by relevance

/linux/arch/powerpc/kvm/
H A De500.h149 get_tlb_size(const struct kvm_book3e_206_tlb_entry *tlbe) in get_tlb_size() argument
151 return (tlbe->mas1 >> 7) & 0x1f; in get_tlb_size()
154 static inline gva_t get_tlb_eaddr(const struct kvm_book3e_206_tlb_entry *tlbe) in get_tlb_eaddr() argument
156 return tlbe->mas2 & MAS2_EPN; in get_tlb_eaddr()
159 static inline u64 get_tlb_bytes(const struct kvm_book3e_206_tlb_entry *tlbe) in get_tlb_bytes() argument
161 unsigned int pgsize = get_tlb_size(tlbe); in get_tlb_bytes()
165 static inline gva_t get_tlb_end(const struct kvm_book3e_206_tlb_entry *tlbe) in get_tlb_end() argument
167 u64 bytes = get_tlb_bytes(tlbe); in get_tlb_end()
168 return get_tlb_eaddr(tlbe) + bytes - 1; in get_tlb_end()
171 static inline u64 get_tlb_raddr(const struct kvm_book3e_206_tlb_entry *tlbe) in get_tlb_raddr() argument
[all …]
H A De500_mmu_host.c192 struct tlbe_priv *tlbe = &vcpu_e500->gtlb_priv[tlbsel][esel]; in inval_gtlbe_on_host() local
195 if (!(tlbe->flags & E500_TLB_VALID)) { in inval_gtlbe_on_host()
196 WARN(tlbe->flags & (E500_TLB_BITMAP | E500_TLB_TLB0), in inval_gtlbe_on_host()
197 "%s: flags %x\n", __func__, tlbe->flags); in inval_gtlbe_on_host()
201 if (tlbsel == 1 && tlbe->flags & E500_TLB_BITMAP) { in inval_gtlbe_on_host()
219 tlbe->flags &= ~(E500_TLB_BITMAP | E500_TLB_VALID); in inval_gtlbe_on_host()
223 if (tlbsel == 1 && tlbe->flags & E500_TLB_TLB0) { in inval_gtlbe_on_host()
229 tlbe->flags &= ~(E500_TLB_TLB0 | E500_TLB_VALID); in inval_gtlbe_on_host()
236 if (tlbe->flags & E500_TLB_VALID) in inval_gtlbe_on_host()
240 tlbe->flags = 0; in inval_gtlbe_on_host()
[all …]
H A De500.c331 struct kvm_book3e_206_tlb_entry *tlbe; in kvmppc_e500_tlb_setup() local
334 tlbe = get_entry(vcpu_e500, 1, 0); in kvmppc_e500_tlb_setup()
335 tlbe->mas1 = MAS1_VALID | MAS1_TSIZE(BOOK3E_PAGESZ_256M); in kvmppc_e500_tlb_setup()
336 tlbe->mas2 = 0; in kvmppc_e500_tlb_setup()
337 tlbe->mas7_3 = E500_TLB_SUPER_PERM_MASK; in kvmppc_e500_tlb_setup()
340 tlbe = get_entry(vcpu_e500, 1, 1); in kvmppc_e500_tlb_setup()
341 tlbe->mas1 = MAS1_VALID | MAS1_TSIZE(BOOK3E_PAGESZ_4K); in kvmppc_e500_tlb_setup()
342 tlbe->mas2 = (0xe0004500 & 0xFFFFF000) | MAS2_I | MAS2_G; in kvmppc_e500_tlb_setup()
343 tlbe->mas7_3 = (0xe0004500 & 0xFFFFF000) | E500_TLB_SUPER_PERM_MASK; in kvmppc_e500_tlb_setup()
H A De500_mmu.c100 struct kvm_book3e_206_tlb_entry *tlbe = in kvmppc_e500_tlb_index() local
104 if (eaddr < get_tlb_eaddr(tlbe)) in kvmppc_e500_tlb_index()
107 if (eaddr > get_tlb_end(tlbe)) in kvmppc_e500_tlb_index()
110 tid = get_tlb_tid(tlbe); in kvmppc_e500_tlb_index()
114 if (!get_tlb_v(tlbe)) in kvmppc_e500_tlb_index()
117 if (get_tlb_ts(tlbe) != as && as != -1) in kvmppc_e500_tlb_index()
163 struct kvm_book3e_206_tlb_entry *tlbe = in kvmppc_recalc_tlb1map_range() local
166 if (!get_tlb_v(tlbe)) in kvmppc_recalc_tlb1map_range()
169 eaddr = get_tlb_eaddr(tlbe); in kvmppc_recalc_tlb1map_range()
173 eaddr = get_tlb_end(tlbe); in kvmppc_recalc_tlb1map_range()
[all …]