aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/kernel/cplb-mpu/cplbmgr.c
diff options
context:
space:
mode:
authorMike Frysinger <vapier.adi@gmail.com>2008-04-23 19:23:36 -0400
committerBryan Wu <cooloney@kernel.org>2008-04-23 19:23:36 -0400
commit4bea8b20fded93871c872bb4a0d7c23345318184 (patch)
tree18f149266ccd65095bb6a596ccecf2b30fb70b4b /arch/blackfin/kernel/cplb-mpu/cplbmgr.c
parentac76d889b5e1f829f71a1527a00dc8048c2c2660 (diff)
[Blackfin] arch: add implicit icplb for the bootrom so we can use the utility functions in the kernel
Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
Diffstat (limited to 'arch/blackfin/kernel/cplb-mpu/cplbmgr.c')
-rw-r--r--arch/blackfin/kernel/cplb-mpu/cplbmgr.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/arch/blackfin/kernel/cplb-mpu/cplbmgr.c b/arch/blackfin/kernel/cplb-mpu/cplbmgr.c
index 3b165bbe90fa..44bbfe26ce49 100644
--- a/arch/blackfin/kernel/cplb-mpu/cplbmgr.c
+++ b/arch/blackfin/kernel/cplb-mpu/cplbmgr.c
@@ -165,7 +165,7 @@ static noinline int dcplb_miss(void)
165 && (status & (FAULT_RW | FAULT_USERSUPV)) == FAULT_USERSUPV) { 165 && (status & (FAULT_RW | FAULT_USERSUPV)) == FAULT_USERSUPV) {
166 addr &= ~(1 * 1024 * 1024 - 1); 166 addr &= ~(1 * 1024 * 1024 - 1);
167 d_data &= ~PAGE_SIZE_4KB; 167 d_data &= ~PAGE_SIZE_4KB;
168 d_data |= PAGE_SIZE_1MB | CPLB_USER_RD; 168 d_data |= PAGE_SIZE_1MB;
169 } else 169 } else
170 return CPLB_PROT_VIOL; 170 return CPLB_PROT_VIOL;
171 } else if (addr >= _ramend) { 171 } else if (addr >= _ramend) {
@@ -243,7 +243,13 @@ static noinline int icplb_miss(void)
243#endif 243#endif
244 244
245 if (addr >= physical_mem_end) { 245 if (addr >= physical_mem_end) {
246 return CPLB_PROT_VIOL; 246 if (addr >= BOOT_ROM_START && addr < BOOT_ROM_START + BOOT_ROM_LENGTH
247 && (status & FAULT_USERSUPV)) {
248 addr &= ~(1 * 1024 * 1024 - 1);
249 i_data &= ~PAGE_SIZE_4KB;
250 i_data |= PAGE_SIZE_1MB;
251 } else
252 return CPLB_PROT_VIOL;
247 } else if (addr >= _ramend) { 253 } else if (addr >= _ramend) {
248 i_data |= CPLB_USER_RD; 254 i_data |= CPLB_USER_RD;
249 } else { 255 } else {