Lines Matching refs:arch

12  * This file is based on arch/powerpc/kvm/44x_tlb.c,
71 esel += gtlb0_set_base(vcpu_e500, vcpu->arch.shared->mas2);
134 tlbsel = (vcpu->arch.shared->mas4 >> 28) & 0x1;
136 tsized = (vcpu->arch.shared->mas4 >> 7) & 0x1f;
138 vcpu->arch.shared->mas0 = MAS0_TLBSEL(tlbsel) | MAS0_ESEL(victim)
140 vcpu->arch.shared->mas1 = MAS1_VALID | (as ? MAS1_TS : 0)
143 vcpu->arch.shared->mas2 = (eaddr & MAS2_EPN)
144 | (vcpu->arch.shared->mas4 & MAS2_ATTRIB_MASK);
145 vcpu->arch.shared->mas7_3 &= MAS3_U0 | MAS3_U1 | MAS3_U2 | MAS3_U3;
146 vcpu->arch.shared->mas6 = (vcpu->arch.shared->mas6 & MAS6_SPID1)
332 vcpu->arch.shared->mas0 &= ~MAS0_NV(~0);
333 vcpu->arch.shared->mas0 |= MAS0_NV(vcpu_e500->gtlb_nv[tlbsel]);
334 vcpu->arch.shared->mas1 = gtlbe->mas1;
335 vcpu->arch.shared->mas2 = gtlbe->mas2;
336 vcpu->arch.shared->mas7_3 = gtlbe->mas7_3;
360 vcpu->arch.shared->mas0 = MAS0_TLBSEL(tlbsel) | MAS0_ESEL(esel)
362 vcpu->arch.shared->mas1 = gtlbe->mas1;
363 vcpu->arch.shared->mas2 = gtlbe->mas2;
364 vcpu->arch.shared->mas7_3 = gtlbe->mas7_3;
369 tlbsel = vcpu->arch.shared->mas4 >> 28 & 0x1;
372 vcpu->arch.shared->mas0 = MAS0_TLBSEL(tlbsel)
375 vcpu->arch.shared->mas1 =
376 (vcpu->arch.shared->mas6 & MAS6_SPID0)
377 | ((vcpu->arch.shared->mas6 & MAS6_SAS) ? MAS1_TS : 0)
378 | (vcpu->arch.shared->mas4 & MAS4_TSIZED(~0));
379 vcpu->arch.shared->mas2 &= MAS2_EPN;
380 vcpu->arch.shared->mas2 |= vcpu->arch.shared->mas4 &
382 vcpu->arch.shared->mas7_3 &= MAS3_U0 | MAS3_U1 |
410 gtlbe->mas1 = vcpu->arch.shared->mas1;
411 gtlbe->mas2 = vcpu->arch.shared->mas2;
412 if (!(vcpu->arch.shared->msr & MSR_CM))
414 gtlbe->mas7_3 = vcpu->arch.shared->mas7_3;
416 trace_kvm_booke206_gtlb_write(vcpu->arch.shared->mas0, gtlbe->mas1,
497 unsigned int as = !!(vcpu->arch.shared->msr & MSR_IS);
504 unsigned int as = !!(vcpu->arch.shared->msr & MSR_DS);
511 unsigned int as = !!(vcpu->arch.shared->msr & MSR_IS);
513 kvmppc_e500_deliver_tlb_miss(vcpu, vcpu->arch.regs.nip, as);
518 unsigned int as = !!(vcpu->arch.shared->msr & MSR_DS);
520 kvmppc_e500_deliver_tlb_miss(vcpu, vcpu->arch.fault_dear, as);
569 sregs->u.e.mas0 = vcpu->arch.shared->mas0;
570 sregs->u.e.mas1 = vcpu->arch.shared->mas1;
571 sregs->u.e.mas2 = vcpu->arch.shared->mas2;
572 sregs->u.e.mas7_3 = vcpu->arch.shared->mas7_3;
573 sregs->u.e.mas4 = vcpu->arch.shared->mas4;
574 sregs->u.e.mas6 = vcpu->arch.shared->mas6;
576 sregs->u.e.mmucfg = vcpu->arch.mmucfg;
577 sregs->u.e.tlbcfg[0] = vcpu->arch.tlbcfg[0];
578 sregs->u.e.tlbcfg[1] = vcpu->arch.tlbcfg[1];
586 vcpu->arch.shared->mas0 = sregs->u.e.mas0;
587 vcpu->arch.shared->mas1 = sregs->u.e.mas1;
588 vcpu->arch.shared->mas2 = sregs->u.e.mas2;
589 vcpu->arch.shared->mas7_3 = sregs->u.e.mas7_3;
590 vcpu->arch.shared->mas4 = sregs->u.e.mas4;
591 vcpu->arch.shared->mas6 = sregs->u.e.mas6;
605 *val = get_reg_val(id, vcpu->arch.shared->mas0);
608 *val = get_reg_val(id, vcpu->arch.shared->mas1);
611 *val = get_reg_val(id, vcpu->arch.shared->mas2);
614 *val = get_reg_val(id, vcpu->arch.shared->mas7_3);
617 *val = get_reg_val(id, vcpu->arch.shared->mas4);
620 *val = get_reg_val(id, vcpu->arch.shared->mas6);
623 *val = get_reg_val(id, vcpu->arch.mmucfg);
626 *val = get_reg_val(id, vcpu->arch.eptcfg);
633 *val = get_reg_val(id, vcpu->arch.tlbcfg[i]);
640 *val = get_reg_val(id, vcpu->arch.tlbps[i]);
658 vcpu->arch.shared->mas0 = set_reg_val(id, *val);
661 vcpu->arch.shared->mas1 = set_reg_val(id, *val);
664 vcpu->arch.shared->mas2 = set_reg_val(id, *val);
667 vcpu->arch.shared->mas7_3 = set_reg_val(id, *val);
670 vcpu->arch.shared->mas4 = set_reg_val(id, *val);
673 vcpu->arch.shared->mas6 = set_reg_val(id, *val);
678 if (reg != vcpu->arch.mmucfg)
684 if (reg != vcpu->arch.eptcfg)
695 if (reg != vcpu->arch.tlbcfg[i])
705 if (reg != vcpu->arch.tlbps[i])
720 vcpu->arch.tlbcfg[0] &= ~(TLBnCFG_N_ENTRY | TLBnCFG_ASSOC);
722 vcpu->arch.tlbcfg[0] |= params->tlb_sizes[0];
723 vcpu->arch.tlbcfg[0] |= params->tlb_ways[0] << TLBnCFG_ASSOC_SHIFT;
725 vcpu->arch.tlbcfg[1] &= ~(TLBnCFG_N_ENTRY | TLBnCFG_ASSOC);
726 vcpu->arch.tlbcfg[1] |= params->tlb_sizes[1];
727 vcpu->arch.tlbcfg[1] |= params->tlb_ways[1] << TLBnCFG_ASSOC_SHIFT;
870 vcpu->arch.mmucfg = mfspr(SPRN_MMUCFG) & ~MMUCFG_LPIDSIZE;
873 vcpu->arch.tlbcfg[0] = mfspr(SPRN_TLB0CFG) &
875 vcpu->arch.tlbcfg[0] |= params[0].entries;
876 vcpu->arch.tlbcfg[0] |= params[0].ways << TLBnCFG_ASSOC_SHIFT;
878 vcpu->arch.tlbcfg[1] = mfspr(SPRN_TLB1CFG) &
880 vcpu->arch.tlbcfg[1] |= params[1].entries;
881 vcpu->arch.tlbcfg[1] |= params[1].ways << TLBnCFG_ASSOC_SHIFT;
884 vcpu->arch.tlbps[0] = mfspr(SPRN_TLB0PS);
885 vcpu->arch.tlbps[1] = mfspr(SPRN_TLB1PS);
887 vcpu->arch.mmucfg &= ~MMUCFG_LRAT;
890 vcpu->arch.eptcfg = 0;
891 vcpu->arch.tlbcfg[0] &= ~TLBnCFG_PT;
892 vcpu->arch.tlbcfg[1] &= ~TLBnCFG_IND;