12 #include <asm/mmu_context.h>
15 #define NR_TLB_ENTRIES 32
19 u32 tlbehi, tlbehi_save, tlbelo, mmucr, mmucr_save;
34 printk(
"%2u: %c %c %02x %05x %05x %o %o %c %c %c %c\n",
58 printk(
"ID V G ASID VPN PFN AP SZ C B W D\n");
104 unsigned long address,
pte_t *ptep)
113 update_dtlb(address, *ptep);
117 static void __flush_tlb_page(
unsigned long asid,
unsigned long page)
126 tlbehi = page |
asid;
142 tlbarlo |= (0x80000000
UL >>
entry);
161 saved_asid = get_asid();
165 __flush_tlb_page(asid, page);
168 set_asid(saved_asid);
191 unsigned long saved_asid;
201 saved_asid = get_asid();
205 while (start < end) {
206 __flush_tlb_page(asid, start);
210 set_asid(saved_asid);
239 while (start < end) {
240 __flush_tlb_page(asid, start);
270 #ifdef CONFIG_PROC_FS
276 static void *tlb_start(
struct seq_file *tlb, loff_t *
pos)
278 static unsigned long tlb_index;
287 static void *tlb_next(
struct seq_file *tlb,
void *
v, loff_t *pos)
299 static void tlb_stop(
struct seq_file *tlb,
void *v)
304 static int tlb_show(
struct seq_file *tlb,
void *v)
306 unsigned int tlbehi, tlbehi_save, tlbelo, mmucr, mmucr_save;
308 unsigned long *index =
v;
311 seq_puts(tlb,
"ID V G ASID VPN PFN AP SZ C B W D\n");
333 seq_printf(tlb,
"%2lu: %c %c %02x %05x %05x %o %o %c %c %c %c\n",
369 static int __init proctlb_init(
void)
371 proc_create(
"tlb", 0,
NULL, &proc_tlb_operations);