diff options
author | Paul Mundt <lethal@linux-sh.org> | 2010-01-21 01:54:31 -0500 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-01-21 01:54:31 -0500 |
commit | 3125ee72dca25fc2157dcddd07e2d740db921fc4 (patch) | |
tree | e6fdcea67ba6ebf9bf485b397f8488b15da1330d /arch/sh/mm/init.c | |
parent | 2023b843d7b62d99e7356b872e99abc7d6667e49 (diff) |
sh: Track the uncached mapping size.
This provides a variable for tracking the uncached mapping size, and uses
it for pretty printing the uncached lowmem range. Beyond this, we'll also
be building on top of this for figuring out from where the remainder of
P2 becomes usable when constructing unrelated mappings.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/mm/init.c')
-rw-r--r-- | arch/sh/mm/init.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c index f3e23ad075cb..a28ff63c17a6 100644 --- a/arch/sh/mm/init.c +++ b/arch/sh/mm/init.c | |||
@@ -27,15 +27,17 @@ pgd_t swapper_pg_dir[PTRS_PER_PGD]; | |||
27 | 27 | ||
28 | #ifdef CONFIG_SUPERH32 | 28 | #ifdef CONFIG_SUPERH32 |
29 | /* | 29 | /* |
30 | * Handle trivial transitions between cached and uncached | ||
31 | * segments, making use of the 1:1 mapping relationship in | ||
32 | * 512MB lowmem. | ||
33 | * | ||
34 | * This is the offset of the uncached section from its cached alias. | 30 | * This is the offset of the uncached section from its cached alias. |
35 | * Default value only valid in 29 bit mode, in 32bit mode will be | 31 | * |
36 | * overridden in pmb_init. | 32 | * Legacy platforms handle trivial transitions between cached and |
33 | * uncached segments by making use of the 1:1 mapping relationship in | ||
34 | * 512MB lowmem, others via a special uncached mapping. | ||
35 | * | ||
36 | * Default value only valid in 29 bit mode, in 32bit mode this will be | ||
37 | * updated by the early PMB initialization code. | ||
37 | */ | 38 | */ |
38 | unsigned long cached_to_uncached = P2SEG - P1SEG; | 39 | unsigned long cached_to_uncached = P2SEG - P1SEG; |
40 | unsigned long uncached_size = 0x20000000; | ||
39 | #endif | 41 | #endif |
40 | 42 | ||
41 | #ifdef CONFIG_MMU | 43 | #ifdef CONFIG_MMU |
@@ -281,7 +283,8 @@ void __init mem_init(void) | |||
281 | " pkmap : 0x%08lx - 0x%08lx (%4ld kB)\n" | 283 | " pkmap : 0x%08lx - 0x%08lx (%4ld kB)\n" |
282 | #endif | 284 | #endif |
283 | " vmalloc : 0x%08lx - 0x%08lx (%4ld MB)\n" | 285 | " vmalloc : 0x%08lx - 0x%08lx (%4ld MB)\n" |
284 | " lowmem : 0x%08lx - 0x%08lx (%4ld MB)\n" | 286 | " lowmem : 0x%08lx - 0x%08lx (%4ld MB) (cached)\n" |
287 | " : 0x%08lx - 0x%08lx (%4ld MB) (uncached)\n" | ||
285 | " .init : 0x%08lx - 0x%08lx (%4ld kB)\n" | 288 | " .init : 0x%08lx - 0x%08lx (%4ld kB)\n" |
286 | " .data : 0x%08lx - 0x%08lx (%4ld kB)\n" | 289 | " .data : 0x%08lx - 0x%08lx (%4ld kB)\n" |
287 | " .text : 0x%08lx - 0x%08lx (%4ld kB)\n", | 290 | " .text : 0x%08lx - 0x%08lx (%4ld kB)\n", |
@@ -299,6 +302,10 @@ void __init mem_init(void) | |||
299 | (unsigned long)memory_start, (unsigned long)high_memory, | 302 | (unsigned long)memory_start, (unsigned long)high_memory, |
300 | ((unsigned long)high_memory - (unsigned long)memory_start) >> 20, | 303 | ((unsigned long)high_memory - (unsigned long)memory_start) >> 20, |
301 | 304 | ||
305 | (unsigned long)memory_start + cached_to_uncached, | ||
306 | (unsigned long)memory_start + cached_to_uncached + uncached_size, | ||
307 | uncached_size >> 20, | ||
308 | |||
302 | (unsigned long)&__init_begin, (unsigned long)&__init_end, | 309 | (unsigned long)&__init_begin, (unsigned long)&__init_end, |
303 | ((unsigned long)&__init_end - | 310 | ((unsigned long)&__init_end - |
304 | (unsigned long)&__init_begin) >> 10, | 311 | (unsigned long)&__init_begin) >> 10, |