瀏覽代碼

sh: Invalidate the TLB after applying PMB mappings.

Signed-off-by: Stuart Menefy <stuart.menefy@st.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Stuart Menefy 17 年之前
父節點
當前提交
eddeeb32fe
共有 2 個文件被更改,包括 8 次插入0 次删除
  1. 6 0
      arch/sh/mm/pmb.c
  2. 2 0
      include/asm-sh/cpu-sh4/mmu_context.h

+ 6 - 0
arch/sh/mm/pmb.c

@@ -27,6 +27,7 @@
 #include <asm/pgtable.h>
 #include <asm/mmu.h>
 #include <asm/io.h>
+#include <asm/mmu_context.h>
 
 #define NR_PMB_ENTRIES	16
 
@@ -329,6 +330,11 @@ static int __init pmb_init(void)
 	/* PMB.SE and UB[7] */
 	ctrl_outl((1 << 31) | (1 << 7), PMB_PASCR);
 
+	/* Flush out the TLB */
+	i =  ctrl_inl(MMUCR);
+	i |= MMUCR_TI;
+	ctrl_outl(i, MMUCR);
+
 	back_to_P1();
 
 	return 0;

+ 2 - 0
include/asm-sh/cpu-sh4/mmu_context.h

@@ -22,6 +22,8 @@
 #define MMU_UTLB_ADDRESS_ARRAY	0xF6000000
 #define MMU_PAGE_ASSOC_BIT	0x80
 
+#define MMUCR_TI		(1<<2)
+
 #ifdef CONFIG_X2TLB
 #define MMUCR_ME		(1 << 7)
 #else