aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/mm/fsl_booke_mmu.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/mm/fsl_booke_mmu.c')
-rw-r--r--arch/powerpc/mm/fsl_booke_mmu.c25
1 files changed, 3 insertions, 22 deletions
diff --git a/arch/powerpc/mm/fsl_booke_mmu.c b/arch/powerpc/mm/fsl_booke_mmu.c
index 1ed6b52f3031..cdc7526e9c93 100644
--- a/arch/powerpc/mm/fsl_booke_mmu.c
+++ b/arch/powerpc/mm/fsl_booke_mmu.c
@@ -2,7 +2,7 @@
2 * Modifications by Kumar Gala (galak@kernel.crashing.org) to support 2 * Modifications by Kumar Gala (galak@kernel.crashing.org) to support
3 * E500 Book E processors. 3 * E500 Book E processors.
4 * 4 *
5 * Copyright 2004 Freescale Semiconductor, Inc 5 * Copyright 2004,2010 Freescale Semiconductor, Inc.
6 * 6 *
7 * This file contains the routines for initializing the MMU 7 * This file contains the routines for initializing the MMU
8 * on the 4xx series of chips. 8 * on the 4xx series of chips.
@@ -56,19 +56,13 @@
56 56
57unsigned int tlbcam_index; 57unsigned int tlbcam_index;
58 58
59#define NUM_TLBCAMS (64)
60 59
61#if defined(CONFIG_LOWMEM_CAM_NUM_BOOL) && (CONFIG_LOWMEM_CAM_NUM >= NUM_TLBCAMS) 60#if defined(CONFIG_LOWMEM_CAM_NUM_BOOL) && (CONFIG_LOWMEM_CAM_NUM >= NUM_TLBCAMS)
62#error "LOWMEM_CAM_NUM must be less than NUM_TLBCAMS" 61#error "LOWMEM_CAM_NUM must be less than NUM_TLBCAMS"
63#endif 62#endif
64 63
65struct tlbcam { 64#define NUM_TLBCAMS (64)
66 u32 MAS0; 65struct tlbcam TLBCAM[NUM_TLBCAMS];
67 u32 MAS1;
68 unsigned long MAS2;
69 u32 MAS3;
70 u32 MAS7;
71} TLBCAM[NUM_TLBCAMS];
72 66
73struct tlbcamrange { 67struct tlbcamrange {
74 unsigned long start; 68 unsigned long start;
@@ -109,19 +103,6 @@ unsigned long p_mapped_by_tlbcam(phys_addr_t pa)
109 return 0; 103 return 0;
110} 104}
111 105
112void loadcam_entry(int idx)
113{
114 mtspr(SPRN_MAS0, TLBCAM[idx].MAS0);
115 mtspr(SPRN_MAS1, TLBCAM[idx].MAS1);
116 mtspr(SPRN_MAS2, TLBCAM[idx].MAS2);
117 mtspr(SPRN_MAS3, TLBCAM[idx].MAS3);
118
119 if (mmu_has_feature(MMU_FTR_BIG_PHYS))
120 mtspr(SPRN_MAS7, TLBCAM[idx].MAS7);
121
122 asm volatile("isync;tlbwe;isync" : : : "memory");
123}
124
125/* 106/*
126 * Set up one of the I/D BAT (block address translation) register pairs. 107 * Set up one of the I/D BAT (block address translation) register pairs.
127 * The parameters are not checked; in particular size must be a power 108 * The parameters are not checked; in particular size must be a power