aboutsummaryrefslogtreecommitdiffstats
path: root/arch/microblaze
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-10-21 21:52:11 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2010-10-21 21:52:11 -0400
commit3044100e58c84e133791c8b60a2f5bef69d732e4 (patch)
treef9ed0d1f3df89c31dd81ccaf0cf3478f57b08440 /arch/microblaze
parentb5153163ed580e00c67bdfecb02b2e3843817b3e (diff)
parent67e87f0a1c5cbc750f81ebf6a128e8ff6f4376cc (diff)
Merge branch 'core-memblock-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'core-memblock-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (74 commits) x86-64: Only set max_pfn_mapped to 512 MiB if we enter via head_64.S xen: Cope with unmapped pages when initializing kernel pagetable memblock, bootmem: Round pfn properly for memory and reserved regions memblock: Annotate memblock functions with __init_memblock memblock: Allow memblock_init to be called early memblock/arm: Fix memblock_region_is_memory() typo x86, memblock: Remove __memblock_x86_find_in_range_size() memblock: Fix wraparound in find_region() x86-32, memblock: Make add_highpages honor early reserved ranges x86, memblock: Fix crashkernel allocation arm, memblock: Fix the sparsemem build memblock: Fix section mismatch warnings powerpc, memblock: Fix memblock API change fallout memblock, microblaze: Fix memblock API change fallout x86: Remove old bootmem code x86, memblock: Use memblock_memory_size()/memblock_free_memory_size() to get correct dma_reserve x86: Remove not used early_res code x86, memblock: Replace e820_/_early string with memblock_ x86: Use memblock to replace early_res x86, memblock: Use memblock_debug to control debug message print out ... Fix up trivial conflicts in arch/x86/kernel/setup.c and kernel/Makefile
Diffstat (limited to 'arch/microblaze')
-rw-r--r--arch/microblaze/include/asm/memblock.h3
-rw-r--r--arch/microblaze/mm/init.c30
2 files changed, 14 insertions, 19 deletions
diff --git a/arch/microblaze/include/asm/memblock.h b/arch/microblaze/include/asm/memblock.h
index f9c2fa331d2a..20a8e257c77f 100644
--- a/arch/microblaze/include/asm/memblock.h
+++ b/arch/microblaze/include/asm/memblock.h
@@ -9,9 +9,6 @@
9#ifndef _ASM_MICROBLAZE_MEMBLOCK_H 9#ifndef _ASM_MICROBLAZE_MEMBLOCK_H
10#define _ASM_MICROBLAZE_MEMBLOCK_H 10#define _ASM_MICROBLAZE_MEMBLOCK_H
11 11
12/* MEMBLOCK limit is OFF */
13#define MEMBLOCK_REAL_LIMIT 0xFFFFFFFF
14
15#endif /* _ASM_MICROBLAZE_MEMBLOCK_H */ 12#endif /* _ASM_MICROBLAZE_MEMBLOCK_H */
16 13
17 14
diff --git a/arch/microblaze/mm/init.c b/arch/microblaze/mm/init.c
index 65eb00419d19..c8437866d3b7 100644
--- a/arch/microblaze/mm/init.c
+++ b/arch/microblaze/mm/init.c
@@ -70,16 +70,16 @@ static void __init paging_init(void)
70 70
71void __init setup_memory(void) 71void __init setup_memory(void)
72{ 72{
73 int i;
74 unsigned long map_size; 73 unsigned long map_size;
74 struct memblock_region *reg;
75
75#ifndef CONFIG_MMU 76#ifndef CONFIG_MMU
76 u32 kernel_align_start, kernel_align_size; 77 u32 kernel_align_start, kernel_align_size;
77 78
78 /* Find main memory where is the kernel */ 79 /* Find main memory where is the kernel */
79 for (i = 0; i < memblock.memory.cnt; i++) { 80 for_each_memblock(memory, reg) {
80 memory_start = (u32) memblock.memory.region[i].base; 81 memory_start = (u32)reg->base;
81 memory_end = (u32) memblock.memory.region[i].base 82 memory_end = (u32) reg->base + reg->size;
82 + (u32) memblock.memory.region[i].size;
83 if ((memory_start <= (u32)_text) && 83 if ((memory_start <= (u32)_text) &&
84 ((u32)_text <= memory_end)) { 84 ((u32)_text <= memory_end)) {
85 memory_size = memory_end - memory_start; 85 memory_size = memory_end - memory_start;
@@ -142,12 +142,10 @@ void __init setup_memory(void)
142 free_bootmem(memory_start, memory_size); 142 free_bootmem(memory_start, memory_size);
143 143
144 /* reserve allocate blocks */ 144 /* reserve allocate blocks */
145 for (i = 0; i < memblock.reserved.cnt; i++) { 145 for_each_memblock(reserved, reg) {
146 pr_debug("reserved %d - 0x%08x-0x%08x\n", i, 146 pr_debug("reserved - 0x%08x-0x%08x\n",
147 (u32) memblock.reserved.region[i].base, 147 (u32) reg->base, (u32) reg->size);
148 (u32) memblock_size_bytes(&memblock.reserved, i)); 148 reserve_bootmem(reg->base, reg->size, BOOTMEM_DEFAULT);
149 reserve_bootmem(memblock.reserved.region[i].base,
150 memblock_size_bytes(&memblock.reserved, i) - 1, BOOTMEM_DEFAULT);
151 } 149 }
152#ifdef CONFIG_MMU 150#ifdef CONFIG_MMU
153 init_bootmem_done = 1; 151 init_bootmem_done = 1;
@@ -230,7 +228,7 @@ static void mm_cmdline_setup(void)
230 if (maxmem && memory_size > maxmem) { 228 if (maxmem && memory_size > maxmem) {
231 memory_size = maxmem; 229 memory_size = maxmem;
232 memory_end = memory_start + memory_size; 230 memory_end = memory_start + memory_size;
233 memblock.memory.region[0].size = memory_size; 231 memblock.memory.regions[0].size = memory_size;
234 } 232 }
235 } 233 }
236} 234}
@@ -273,14 +271,14 @@ asmlinkage void __init mmu_init(void)
273 machine_restart(NULL); 271 machine_restart(NULL);
274 } 272 }
275 273
276 if ((u32) memblock.memory.region[0].size < 0x1000000) { 274 if ((u32) memblock.memory.regions[0].size < 0x1000000) {
277 printk(KERN_EMERG "Memory must be greater than 16MB\n"); 275 printk(KERN_EMERG "Memory must be greater than 16MB\n");
278 machine_restart(NULL); 276 machine_restart(NULL);
279 } 277 }
280 /* Find main memory where the kernel is */ 278 /* Find main memory where the kernel is */
281 memory_start = (u32) memblock.memory.region[0].base; 279 memory_start = (u32) memblock.memory.regions[0].base;
282 memory_end = (u32) memblock.memory.region[0].base + 280 memory_end = (u32) memblock.memory.regions[0].base +
283 (u32) memblock.memory.region[0].size; 281 (u32) memblock.memory.regions[0].size;
284 memory_size = memory_end - memory_start; 282 memory_size = memory_end - memory_start;
285 283
286 mm_cmdline_setup(); /* FIXME parse args from command line - not used */ 284 mm_cmdline_setup(); /* FIXME parse args from command line - not used */