| /openbmc/qemu/target/ppc/ |
| H A D | mmu_helper.c | 49 ppc6xx_tlb_t *tlb; in ppc6xx_tlb_invalidate_all() local 53 tlb = &env->tlb.tlb6[nr]; in ppc6xx_tlb_invalidate_all() 54 pte_invalidate(&tlb->pte0); in ppc6xx_tlb_invalidate_all() 65 ppc6xx_tlb_t *tlb; in ppc6xx_tlb_invalidate_virt2() local 71 tlb = &env->tlb.tlb6[nr]; in ppc6xx_tlb_invalidate_virt2() 72 if (pte_is_valid(tlb->pte0) && (match_epn == 0 || eaddr == tlb->EPN)) { in ppc6xx_tlb_invalidate_virt2() 75 pte_invalidate(&tlb->pte0); in ppc6xx_tlb_invalidate_virt2() 76 tlb_flush_page(cs, tlb->EPN); in ppc6xx_tlb_invalidate_virt2() 94 ppc6xx_tlb_t *tlb; in ppc6xx_tlb_store() local 98 tlb = &env->tlb.tlb6[nr]; in ppc6xx_tlb_store() [all …]
|
| H A D | mmu-booke.c | 28 static bool ppcemb_tlb_check(CPUPPCState *env, ppcemb_tlb_t *tlb, in ppcemb_tlb_check() argument 35 if (!(tlb->prot & PAGE_VALID)) { in ppcemb_tlb_check() 38 mask = ~(tlb->size - 1); in ppcemb_tlb_check() 41 __func__, i, address, pid, tlb->EPN, in ppcemb_tlb_check() 42 mask, (uint32_t)tlb->PID, tlb->prot); in ppcemb_tlb_check() 44 if (tlb->PID != 0 && tlb->PID != pid) { in ppcemb_tlb_check() 48 if ((address & mask) != tlb->EPN) { in ppcemb_tlb_check() 51 *raddrp = (tlb->RPN & mask) | (address & ~mask); in ppcemb_tlb_check() 58 ppcemb_tlb_t *tlb; in ppcemb_tlb_search() local 63 tlb = &env->tlb.tlbe[i]; in ppcemb_tlb_search() [all …]
|
| H A D | mmu_common.c | 92 ppc6xx_tlb_t *tlb; in ppc6xx_tlb_check() local 103 tlb = &env->tlb.tlb6[nr]; in ppc6xx_tlb_check() 105 if ((eaddr & TARGET_PAGE_MASK) != tlb->EPN) { in ppc6xx_tlb_check() 109 pte_is_valid(tlb->pte0) ? "valid" : "inval", in ppc6xx_tlb_check() 110 tlb->EPN, tlb->EPN + TARGET_PAGE_SIZE, eaddr); in ppc6xx_tlb_check() 116 pte_is_valid(tlb->pte0) ? "valid" : "inval", in ppc6xx_tlb_check() 117 tlb->EPN, eaddr, tlb->pte1, in ppc6xx_tlb_check() 121 if (!pte_is_valid(tlb->pte0) || ((tlb->pte0 >> 6) & 1) != 0 || in ppc6xx_tlb_check() 122 (tlb->pte0 & PTE_PTEM_MASK) != ptem) { in ppc6xx_tlb_check() 127 (*raddr & PTE_CHECK_MASK) != (tlb->pte1 & PTE_CHECK_MASK)) { in ppc6xx_tlb_check() [all …]
|
| H A D | mmu-booke.h | 10 hwaddr booke206_tlb_to_page_size(CPUPPCState *env, ppcmas_tlb_t *tlb); 11 int ppcmas_tlb_check(CPUPPCState *env, ppcmas_tlb_t *tlb, hwaddr *raddrp,
|
| /openbmc/qemu/target/mips/tcg/system/ |
| H A D | tlb_helper.c | 35 while (env->tlb->tlb_in_use > first) { in r4k_mips_tlb_flush_extra() 36 r4k_invalidate_tlb(env, --env->tlb->tlb_in_use, 0); in r4k_mips_tlb_flush_extra() 52 r4k_tlb_t *tlb; in r4k_fill_tlb() local 56 tlb = &env->tlb->mmu.r4k.tlb[idx]; in r4k_fill_tlb() 58 tlb->EHINV = 1; in r4k_fill_tlb() 61 tlb->EHINV = 0; in r4k_fill_tlb() 62 tlb->VPN = env->CP0_EntryHi & (TARGET_PAGE_MASK << 1); in r4k_fill_tlb() 64 tlb->VPN &= env->SEGMask; in r4k_fill_tlb() 66 tlb->ASID = env->CP0_EntryHi & env->CP0_EntryHi_ASID_mask; in r4k_fill_tlb() 67 tlb->MMID = env->CP0_MemoryMapID; in r4k_fill_tlb() [all …]
|
| /openbmc/qemu/target/loongarch/tcg/ |
| H A D | tlb_helper.c | 102 LoongArchTLB *tlb = &env->tlb[index]; in invalidate_tlb_entry() local 105 uint8_t tlb_v0 = FIELD_EX64(tlb->tlb_entry0, TLBENTRY, V); in invalidate_tlb_entry() 106 uint8_t tlb_v1 = FIELD_EX64(tlb->tlb_entry1, TLBENTRY, V); in invalidate_tlb_entry() 107 uint64_t tlb_vppn = FIELD_EX64(tlb->tlb_misc, TLB_MISC, VPPN); in invalidate_tlb_entry() 108 uint8_t tlb_e = FIELD_EX64(tlb->tlb_misc, TLB_MISC, E); in invalidate_tlb_entry() 114 tlb_ps = FIELD_EX64(tlb->tlb_misc, TLB_MISC, PS); in invalidate_tlb_entry() 136 LoongArchTLB *tlb; in invalidate_tlb() local 140 tlb = &env->tlb[index]; in invalidate_tlb() 141 tlb_asid = FIELD_EX64(tlb->tlb_misc, TLB_MISC, ASID); in invalidate_tlb() 142 tlb_g = FIELD_EX64(tlb->tlb_entry0, TLBENTRY, G); in invalidate_tlb() [all …]
|
| /openbmc/qemu/target/sh4/ |
| H A D | monitor.c | 30 static void print_tlb(Monitor *mon, int idx, tlb_t *tlb) in print_tlb() argument 37 tlb->asid, tlb->vpn, tlb->ppn, tlb->sz, tlb->size, in print_tlb() 38 tlb->v, tlb->sh, tlb->c, tlb->pr, in print_tlb() 39 tlb->d, tlb->wt); in print_tlb()
|
| /openbmc/qemu/qga/vss-win32/ |
| H A D | meson.build | 27 gen_tlb = custom_target('gen-tlb', 29 output: 'qga-vss.tlb', 30 command: [midl, '@INPUT@', '/tlb', '@OUTPUT@']) 32 gen_tlb = custom_target('gen-tlb', 34 output: 'qga-vss.tlb',
|
| /openbmc/qemu/target/openrisc/ |
| H A D | sys_helper.c | 103 mr = env->tlb.dtlb[idx].mr; in HELPER() 110 env->tlb.dtlb[idx].mr = rb; in HELPER() 114 env->tlb.dtlb[idx].tr = rb; in HELPER() 126 mr = env->tlb.itlb[idx].mr; in HELPER() 133 env->tlb.itlb[idx].mr = rb; in HELPER() 137 env->tlb.itlb[idx].tr = rb; in HELPER() 301 return env->tlb.dtlb[idx].mr; in HELPER() 305 return env->tlb.dtlb[idx].tr; in HELPER() 317 return env->tlb.itlb[idx].mr; in HELPER() 321 return env->tlb.itlb[idx].tr; in HELPER()
|
| H A D | mmu.c | 42 uint32_t imr = cpu->env.tlb.itlb[idx].mr; in get_phys_mmu() 43 uint32_t itr = cpu->env.tlb.itlb[idx].tr; in get_phys_mmu() 44 uint32_t dmr = cpu->env.tlb.dtlb[idx].mr; in get_phys_mmu() 45 uint32_t dtr = cpu->env.tlb.dtlb[idx].tr; in get_phys_mmu()
|
| /openbmc/u-boot/arch/powerpc/cpu/mpc85xx/ |
| H A D | tlb.c | 20 void invalidate_tlb(u8 tlb) in invalidate_tlb() argument 22 if (tlb == 0) in invalidate_tlb() 24 if (tlb == 1) in invalidate_tlb() 136 void set_tlb(u8 tlb, u32 epn, u64 rpn, in set_tlb() argument 142 if (tlb == 1) in set_tlb() 148 __func__, tsize, tlb, epn); in set_tlb() 152 _mas0 = FSL_BOOKE_MAS0(tlb, esel, 0); in set_tlb() 161 if ((tlb == 1) && (gd->flags & GD_FLG_RELOC)) in set_tlb()
|
| /openbmc/qemu/target/hppa/ |
| H A D | machine.c | 115 memset(env->tlb, 0, sizeof(env->tlb)); in tlb_pre_load() 135 for (uint32_t i = 0; i < ARRAY_SIZE(env->tlb); ++i) { in tlb_post_load() 136 HPPATLBEntry *e = &env->tlb[i]; in tlb_post_load() 156 VMSTATE_ARRAY(tlb, CPUHPPAState, 157 ARRAY_SIZE(((CPUHPPAState *)0)->tlb),
|
| H A D | mem_helper.c | 107 is_btlb = ent < &env->tlb[HPPA_BTLB_ENTRIES(env)]; in hppa_flush_tlb_ent() 146 if (i < btlb_entries || i >= ARRAY_SIZE(env->tlb)) { in hppa_alloc_tlb_ent() 151 ent = &env->tlb[i]; in hppa_alloc_tlb_ent() 649 memset(&env->tlb[btlb_entries], 0, in hppa_ptlbe() 650 sizeof(env->tlb) - btlb_entries * sizeof(env->tlb[0])); in hppa_ptlbe() 655 env->tlb_unused = &env->tlb[btlb_entries]; in hppa_ptlbe() 656 for (i = btlb_entries; i < ARRAY_SIZE(env->tlb) - 1; ++i) { in hppa_ptlbe() 657 env->tlb[i].unused_next = &env->tlb[i + 1]; in hppa_ptlbe() 663 if (env->tlb[i].entry_valid) { in hppa_ptlbe() 664 interval_tree_insert(&env->tlb[i].itree, &env->tlb_root); in hppa_ptlbe() [all …]
|
| /openbmc/qemu/accel/tcg/ |
| H A D | cputlb.c | 132 uintptr_t size_mask = cpu->neg.tlb.f[mmu_idx].mask >> CPU_TLB_ENTRY_BITS; in tlb_index() 141 return &cpu->neg.tlb.f[mmu_idx].table[tlb_index(cpu, mmu_idx, addr)]; in tlb_entry() 294 CPUTLBDesc *desc = &cpu->neg.tlb.d[mmu_idx]; in tlb_flush_one_mmuidx_locked() 295 CPUTLBDescFast *fast = &cpu->neg.tlb.f[mmu_idx]; in tlb_flush_one_mmuidx_locked() 315 cpu->neg.tlb.d[mmu_idx].n_used_entries++; in tlb_n_used_entries_inc() 320 cpu->neg.tlb.d[mmu_idx].n_used_entries--; in tlb_n_used_entries_dec() 328 qemu_spin_init(&cpu->neg.tlb.c.lock); in tlb_init() 331 cpu->neg.tlb.c.dirty = 0; in tlb_init() 334 tlb_mmu_init(&cpu->neg.tlb.d[i], &cpu->neg.tlb.f[i], now); in tlb_init() 342 qemu_spin_destroy(&cpu->neg.tlb.c.lock); in tlb_destroy() [all …]
|
| /openbmc/u-boot/doc/device-tree-bindings/cpu/ |
| H A D | nios2.txt | 44 altr,tlb-num-ways = <16>; 45 altr,tlb-num-entries = <128>; 46 altr,tlb-ptr-sz = <7>; 50 altr,fast-tlb-miss-addr = <0xc7fff400>;
|
| /openbmc/qemu/target/sparc/ |
| H A D | ldst_helper.c | 127 static void replace_tlb_entry(SparcTLBEntry *tlb, in replace_tlb_entry() argument 134 if (TTE_IS_VALID(tlb->tte)) { in replace_tlb_entry() 137 size = 8192ULL << 3 * TTE_PGSIZE(tlb->tte); in replace_tlb_entry() 140 va = tlb->tag & mask; in replace_tlb_entry() 147 tlb->tag = tlb_tag; in replace_tlb_entry() 148 tlb->tte = tlb_tte; in replace_tlb_entry() 151 static void demap_tlb(SparcTLBEntry *tlb, target_ulong demap_addr, in demap_tlb() argument 177 if (TTE_IS_VALID(tlb[i].tte)) { in demap_tlb() 181 if (TTE_IS_GLOBAL(tlb[i].tte) || in demap_tlb() 182 !tlb_compare_context(&tlb[i], context)) { in demap_tlb() [all …]
|
| /openbmc/u-boot/board/Arcturus/ucp1020/ |
| H A D | Makefile | 18 obj-y += spl_minimal.o tlb.o law.o 28 obj-y += tlb.o
|
| /openbmc/qemu/hw/ppc/ |
| H A D | ppc_booke.c | 35 void booke_set_tlb(ppcemb_tlb_t *tlb, target_ulong va, hwaddr pa, in booke_set_tlb() argument 38 tlb->attr = 0; in booke_set_tlb() 39 tlb->prot = PAGE_RWX << 4 | PAGE_VALID; in booke_set_tlb() 40 tlb->size = size; in booke_set_tlb() 41 tlb->EPN = va & TARGET_PAGE_MASK; in booke_set_tlb() 42 tlb->RPN = pa & TARGET_PAGE_MASK; in booke_set_tlb() 43 tlb->PID = 0; in booke_set_tlb()
|
| H A D | ppce500_spin.c | 79 ppcmas_tlb_t *tlb = booke206_get_tlbm(env, 1, 0, 1); in spin_kick() local 94 booke206_set_tlb(tlb, 0, map_start, map_size); in spin_kick() 95 tlb->mas2 |= MAS2_M; in spin_kick()
|
| /openbmc/qemu/target/mips/system/ |
| H A D | physaddr.c | 91 return env->tlb->map_address(env, physical, prot, real_address, in get_seg_physical_address() 148 ret = env->tlb->map_address(env, physical, prot, in get_physical_address() 157 ret = env->tlb->map_address(env, physical, prot, in get_physical_address() 198 ret = env->tlb->map_address(env, physical, prot, in get_physical_address()
|
| /openbmc/u-boot/arch/nios2/dts/ |
| H A D | 3c120_devboard.dts | 33 altr,tlb-num-ways = <16>; 34 altr,tlb-num-entries = <128>; 35 altr,tlb-ptr-sz = <7>; 39 altr,fast-tlb-miss-addr = <0xc7fff400>;
|
| /openbmc/u-boot/board/freescale/common/p_corenet/ |
| H A D | Makefile | 8 obj-y += tlb.o
|
| /openbmc/u-boot/board/freescale/p1023rdb/ |
| H A D | Makefile | 8 obj-y += tlb.o
|
| /openbmc/u-boot/board/xes/xpedite537x/ |
| H A D | Makefile | 11 obj-y += tlb.o
|
| /openbmc/u-boot/board/freescale/mpc8536ds/ |
| H A D | Makefile | 10 obj-y += tlb.o
|