diff options
author | Paul Mundt <lethal@linux-sh.org> | 2010-02-17 02:28:00 -0500 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-02-17 02:28:00 -0500 |
commit | 9edef28653a519bf0a48250f36cce96b1736ec4e (patch) | |
tree | 68049b29e69228fe0cdf26b27a3743928c5e7fdb /arch/sh/kernel | |
parent | 51becfd96287b3913b13075699433730984e2f4f (diff) |
sh: uncached mapping helpers.
This adds some helper routines for uncached mapping support. This
simplifies some of the cases where we need to check the uncached mapping
boundaries in addition to giving us a centralized location for building
more complex manipulation on top of.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel')
-rw-r--r-- | arch/sh/kernel/head_32.S | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/sh/kernel/head_32.S b/arch/sh/kernel/head_32.S index 91ae76277d8f..79ff39517f8e 100644 --- a/arch/sh/kernel/head_32.S +++ b/arch/sh/kernel/head_32.S | |||
@@ -152,6 +152,7 @@ ENTRY(_stext) | |||
152 | 152 | ||
153 | mov #0, r10 | 153 | mov #0, r10 |
154 | 154 | ||
155 | #ifdef CONFIG_UNCACHED_MAPPING | ||
155 | /* | 156 | /* |
156 | * Uncached mapping | 157 | * Uncached mapping |
157 | */ | 158 | */ |
@@ -171,6 +172,7 @@ ENTRY(_stext) | |||
171 | add r4, r1 | 172 | add r4, r1 |
172 | add r4, r3 | 173 | add r4, r3 |
173 | add #1, r10 | 174 | add #1, r10 |
175 | #endif | ||
174 | 176 | ||
175 | /* | 177 | /* |
176 | * Iterate over all of the available sizes from largest to | 178 | * Iterate over all of the available sizes from largest to |
@@ -216,6 +218,7 @@ ENTRY(_stext) | |||
216 | __PMB_ITER_BY_SIZE(64) | 218 | __PMB_ITER_BY_SIZE(64) |
217 | __PMB_ITER_BY_SIZE(16) | 219 | __PMB_ITER_BY_SIZE(16) |
218 | 220 | ||
221 | #ifdef CONFIG_UNCACHED_MAPPING | ||
219 | /* | 222 | /* |
220 | * Now that we can access it, update cached_to_uncached and | 223 | * Now that we can access it, update cached_to_uncached and |
221 | * uncached_size. | 224 | * uncached_size. |
@@ -228,6 +231,7 @@ ENTRY(_stext) | |||
228 | shll16 r7 | 231 | shll16 r7 |
229 | shll8 r7 | 232 | shll8 r7 |
230 | mov.l r7, @r0 | 233 | mov.l r7, @r0 |
234 | #endif | ||
231 | 235 | ||
232 | /* | 236 | /* |
233 | * Clear the remaining PMB entries. | 237 | * Clear the remaining PMB entries. |
@@ -306,7 +310,9 @@ ENTRY(stack_start) | |||
306 | .LFIRST_ADDR_ENTRY: .long PAGE_OFFSET | PMB_V | 310 | .LFIRST_ADDR_ENTRY: .long PAGE_OFFSET | PMB_V |
307 | .LFIRST_DATA_ENTRY: .long __MEMORY_START | PMB_V | 311 | .LFIRST_DATA_ENTRY: .long __MEMORY_START | PMB_V |
308 | .LMMUCR: .long MMUCR | 312 | .LMMUCR: .long MMUCR |
313 | .LMEMORY_SIZE: .long __MEMORY_SIZE | ||
314 | #ifdef CONFIG_UNCACHED_MAPPING | ||
309 | .Lcached_to_uncached: .long cached_to_uncached | 315 | .Lcached_to_uncached: .long cached_to_uncached |
310 | .Luncached_size: .long uncached_size | 316 | .Luncached_size: .long uncached_size |
311 | .LMEMORY_SIZE: .long __MEMORY_SIZE | 317 | #endif |
312 | #endif | 318 | #endif |