diff options
author | Sonic Zhang <sonic.zhang@analog.com> | 2009-12-09 02:01:50 -0500 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2010-03-09 00:30:46 -0500 |
commit | 5792ab2a0a22fdaef33056ca2b31847a28b1af60 (patch) | |
tree | 7c1257f6f0fa2c0bf469cb898b38b9320f57920c /arch/blackfin/kernel | |
parent | d94a1aa44ed6bfe8d8ab36c02de652d4fcf0d2c3 (diff) |
Blackfin: MPU: handle caches for reserved memory
We weren't handling the user-specified cache behavior for the reserved
memory regions (via mem=/max_mem=). The no-MPU code already takes care
of this, so add support to the MPU code as well.
Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin/kernel')
-rw-r--r-- | arch/blackfin/kernel/cplb-mpu/cplbmgr.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/blackfin/kernel/cplb-mpu/cplbmgr.c b/arch/blackfin/kernel/cplb-mpu/cplbmgr.c index d4cc53a0ef89..7e6383dc7b20 100644 --- a/arch/blackfin/kernel/cplb-mpu/cplbmgr.c +++ b/arch/blackfin/kernel/cplb-mpu/cplbmgr.c | |||
@@ -131,7 +131,9 @@ static noinline int dcplb_miss(unsigned int cpu) | |||
131 | } else | 131 | } else |
132 | return CPLB_PROT_VIOL; | 132 | return CPLB_PROT_VIOL; |
133 | } else if (addr >= _ramend) { | 133 | } else if (addr >= _ramend) { |
134 | d_data |= CPLB_USER_RD | CPLB_USER_WR; | 134 | d_data |= CPLB_USER_RD | CPLB_USER_WR; |
135 | if (reserved_mem_dcache_on) | ||
136 | d_data |= CPLB_L1_CHBL; | ||
135 | } else { | 137 | } else { |
136 | mask = current_rwx_mask[cpu]; | 138 | mask = current_rwx_mask[cpu]; |
137 | if (mask) { | 139 | if (mask) { |
@@ -231,6 +233,8 @@ static noinline int icplb_miss(unsigned int cpu) | |||
231 | return CPLB_PROT_VIOL; | 233 | return CPLB_PROT_VIOL; |
232 | } else if (addr >= _ramend) { | 234 | } else if (addr >= _ramend) { |
233 | i_data |= CPLB_USER_RD; | 235 | i_data |= CPLB_USER_RD; |
236 | if (reserved_mem_icache_on) | ||
237 | i_data |= CPLB_L1_CHBL; | ||
234 | } else { | 238 | } else { |
235 | /* | 239 | /* |
236 | * Two cases to distinguish - a supervisor access must | 240 | * Two cases to distinguish - a supervisor access must |