4 * SH-3 specific TLB operations
6 * Copyright (C) 1999 Niibe Yutaka
7 * Copyright (C) 2002 Paul Mundt
9 * Released under the terms of the GNU GPL v2.0.
12 #include <asm/system.h>
13 #include <asm/mmu_context.h>
15 void __flush_tlb_page(unsigned long asid
, unsigned long page
)
17 unsigned long addr
, data
;
18 int i
, ways
= MMU_NTLB_WAYS
;
21 * NOTE: PTEH.ASID should be set to this MM
22 * _AND_ we need to write ASID to the array.
24 * It would be simple if we didn't need to set PTEH.ASID...
26 addr
= MMU_TLB_ADDRESS_ARRAY
| (page
& 0x1F000);
27 data
= (page
& 0xfffe0000) | asid
; /* VALID bit is off */
29 if ((cpu_data
->flags
& CPU_HAS_MMU_PAGE_ASSOC
)) {
30 addr
|= MMU_PAGE_ASSOC_BIT
;
31 ways
= 1; /* we already know the way .. */
34 for (i
= 0; i
< ways
; i
++)
35 ctrl_outl(data
, addr
+ (i
<< 8));