Lines Matching +full:2 +full:- +full:way
23 ((((1UL << (cpuinfo.tlb_ptr_sz - cpuinfo.tlb_num_ways_log2))) - 1) \
43 if (current->mm == mm) in flush_tlb_mm()
46 memset(&mm->context, 0, sizeof(mm_context_t)); in flush_tlb_mm()
55 unsigned int way; in flush_tlb_one_pid() local
58 pr_debug("Flush tlb-entry for vaddr=%#lx\n", addr); in flush_tlb_one_pid()
60 /* remember pid/way until we return. */ in flush_tlb_one_pid()
63 WRCTL(CTL_PTEADDR, (addr >> PAGE_SHIFT) << 2); in flush_tlb_one_pid()
65 for (way = 0; way < cpuinfo.tlb_num_ways; way++) { in flush_tlb_one_pid()
70 tlbmisc = pid_misc | TLBMISC_RD | (way << TLBMISC_WAY_SHIFT); in flush_tlb_one_pid()
75 if (((((pteaddr >> 2) & 0xfffff)) == (addr >> PAGE_SHIFT)) && in flush_tlb_one_pid()
78 ((PAGE_SIZE * cpuinfo.tlb_num_lines) * way) + in flush_tlb_one_pid()
80 pr_debug("Flush entry by writing %#lx way=%dl pid=%ld\n", in flush_tlb_one_pid()
81 vaddr, way, (pid_misc >> TLBMISC_PID_SHIFT)); in flush_tlb_one_pid()
83 WRCTL(CTL_PTEADDR, (vaddr >> 12) << 2); in flush_tlb_one_pid()
85 (way << TLBMISC_WAY_SHIFT); in flush_tlb_one_pid()
97 unsigned long mmu_pid = get_pid_from_context(&vma->vm_mm->context); in flush_tlb_range()
119 unsigned int way; in flush_tlb_one() local
122 pr_debug("Flush tlb-entry for vaddr=%#lx\n", addr); in flush_tlb_one()
124 /* remember pid/way until we return. */ in flush_tlb_one()
127 WRCTL(CTL_PTEADDR, (addr >> PAGE_SHIFT) << 2); in flush_tlb_one()
129 for (way = 0; way < cpuinfo.tlb_num_ways; way++) { in flush_tlb_one()
133 tlbmisc = pid_misc | TLBMISC_RD | (way << TLBMISC_WAY_SHIFT); in flush_tlb_one()
138 if ((((pteaddr >> 2) & 0xfffff)) == (addr >> PAGE_SHIFT)) { in flush_tlb_one()
140 ((PAGE_SIZE * cpuinfo.tlb_num_lines) * way) + in flush_tlb_one()
143 pr_debug("Flush entry by writing %#lx way=%dl pid=%ld\n", in flush_tlb_one()
144 vaddr, way, (pid_misc >> TLBMISC_PID_SHIFT)); in flush_tlb_one()
147 (way << TLBMISC_WAY_SHIFT); in flush_tlb_one()
148 WRCTL(CTL_PTEADDR, (vaddr >> 12) << 2); in flush_tlb_one()
159 unsigned int way; in dump_tlb_line() local
162 pr_debug("dump tlb-entries for line=%#lx (addr %08lx)\n", line, in dump_tlb_line()
165 /* remember pid/way until we return */ in dump_tlb_line()
168 WRCTL(CTL_PTEADDR, line << 2); in dump_tlb_line()
170 for (way = 0; way < cpuinfo.tlb_num_ways; way++) { in dump_tlb_line()
175 WRCTL(CTL_TLBMISC, TLBMISC_RD | (way << TLBMISC_WAY_SHIFT)); in dump_tlb_line()
181 pr_debug("-- way:%02x vpn:0x%08lx phys:0x%08lx pid:0x%02lx flags:%c%c%c%c%c\n", in dump_tlb_line()
182 way, in dump_tlb_line()
183 (pteaddr << (PAGE_SHIFT-2)), in dump_tlb_line()
187 (tlbacc & _PAGE_READ ? 'r' : '-'), in dump_tlb_line()
188 (tlbacc & _PAGE_WRITE ? 'w' : '-'), in dump_tlb_line()
189 (tlbacc & _PAGE_EXEC ? 'x' : '-'), in dump_tlb_line()
190 (tlbacc & _PAGE_GLOBAL ? 'g' : '-'), in dump_tlb_line()
191 (tlbacc & _PAGE_CACHED ? 'c' : '-')); in dump_tlb_line()
209 unsigned int way; in flush_tlb_pid() local
212 /* remember pid/way until we return */ in flush_tlb_pid()
216 WRCTL(CTL_PTEADDR, line << 2); in flush_tlb_pid()
218 for (way = 0; way < cpuinfo.tlb_num_ways; way++) { in flush_tlb_pid()
224 (way << TLBMISC_WAY_SHIFT); in flush_tlb_pid()
233 (way << TLBMISC_WAY_SHIFT); in flush_tlb_pid()
248 unsigned int way; in flush_tlb_all() local
251 /* remember pid/way until we return */ in flush_tlb_all()
255 /* Map each TLB entry to physcal address 0 with no-access and a in flush_tlb_all()
257 for (way = 0; way < cpuinfo.tlb_num_ways; way++) { in flush_tlb_all()
258 tlbmisc = pid_misc | (way << TLBMISC_WAY_SHIFT); in flush_tlb_all()
260 WRCTL(CTL_PTEADDR, ((vaddr) >> PAGE_SHIFT) << 2); in flush_tlb_all()
267 /* restore pid/way */ in flush_tlb_all()