diff options
Diffstat (limited to 'arch/microblaze/mm/init.c')
-rw-r--r-- | arch/microblaze/mm/init.c | 32 |
1 files changed, 14 insertions, 18 deletions
diff --git a/arch/microblaze/mm/init.c b/arch/microblaze/mm/init.c index 65eb00419d19..213f2d671669 100644 --- a/arch/microblaze/mm/init.c +++ b/arch/microblaze/mm/init.c | |||
@@ -32,8 +32,6 @@ unsigned int __page_offset; | |||
32 | EXPORT_SYMBOL(__page_offset); | 32 | EXPORT_SYMBOL(__page_offset); |
33 | 33 | ||
34 | #else | 34 | #else |
35 | DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); | ||
36 | |||
37 | static int init_bootmem_done; | 35 | static int init_bootmem_done; |
38 | #endif /* CONFIG_MMU */ | 36 | #endif /* CONFIG_MMU */ |
39 | 37 | ||
@@ -70,16 +68,16 @@ static void __init paging_init(void) | |||
70 | 68 | ||
71 | void __init setup_memory(void) | 69 | void __init setup_memory(void) |
72 | { | 70 | { |
73 | int i; | ||
74 | unsigned long map_size; | 71 | unsigned long map_size; |
72 | struct memblock_region *reg; | ||
73 | |||
75 | #ifndef CONFIG_MMU | 74 | #ifndef CONFIG_MMU |
76 | u32 kernel_align_start, kernel_align_size; | 75 | u32 kernel_align_start, kernel_align_size; |
77 | 76 | ||
78 | /* Find main memory where is the kernel */ | 77 | /* Find main memory where is the kernel */ |
79 | for (i = 0; i < memblock.memory.cnt; i++) { | 78 | for_each_memblock(memory, reg) { |
80 | memory_start = (u32) memblock.memory.region[i].base; | 79 | memory_start = (u32)reg->base; |
81 | memory_end = (u32) memblock.memory.region[i].base | 80 | memory_end = (u32) reg->base + reg->size; |
82 | + (u32) memblock.memory.region[i].size; | ||
83 | if ((memory_start <= (u32)_text) && | 81 | if ((memory_start <= (u32)_text) && |
84 | ((u32)_text <= memory_end)) { | 82 | ((u32)_text <= memory_end)) { |
85 | memory_size = memory_end - memory_start; | 83 | memory_size = memory_end - memory_start; |
@@ -142,12 +140,10 @@ void __init setup_memory(void) | |||
142 | free_bootmem(memory_start, memory_size); | 140 | free_bootmem(memory_start, memory_size); |
143 | 141 | ||
144 | /* reserve allocate blocks */ | 142 | /* reserve allocate blocks */ |
145 | for (i = 0; i < memblock.reserved.cnt; i++) { | 143 | for_each_memblock(reserved, reg) { |
146 | pr_debug("reserved %d - 0x%08x-0x%08x\n", i, | 144 | pr_debug("reserved - 0x%08x-0x%08x\n", |
147 | (u32) memblock.reserved.region[i].base, | 145 | (u32) reg->base, (u32) reg->size); |
148 | (u32) memblock_size_bytes(&memblock.reserved, i)); | 146 | 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 | } | 147 | } |
152 | #ifdef CONFIG_MMU | 148 | #ifdef CONFIG_MMU |
153 | init_bootmem_done = 1; | 149 | init_bootmem_done = 1; |
@@ -230,7 +226,7 @@ static void mm_cmdline_setup(void) | |||
230 | if (maxmem && memory_size > maxmem) { | 226 | if (maxmem && memory_size > maxmem) { |
231 | memory_size = maxmem; | 227 | memory_size = maxmem; |
232 | memory_end = memory_start + memory_size; | 228 | memory_end = memory_start + memory_size; |
233 | memblock.memory.region[0].size = memory_size; | 229 | memblock.memory.regions[0].size = memory_size; |
234 | } | 230 | } |
235 | } | 231 | } |
236 | } | 232 | } |
@@ -273,14 +269,14 @@ asmlinkage void __init mmu_init(void) | |||
273 | machine_restart(NULL); | 269 | machine_restart(NULL); |
274 | } | 270 | } |
275 | 271 | ||
276 | if ((u32) memblock.memory.region[0].size < 0x1000000) { | 272 | if ((u32) memblock.memory.regions[0].size < 0x1000000) { |
277 | printk(KERN_EMERG "Memory must be greater than 16MB\n"); | 273 | printk(KERN_EMERG "Memory must be greater than 16MB\n"); |
278 | machine_restart(NULL); | 274 | machine_restart(NULL); |
279 | } | 275 | } |
280 | /* Find main memory where the kernel is */ | 276 | /* Find main memory where the kernel is */ |
281 | memory_start = (u32) memblock.memory.region[0].base; | 277 | memory_start = (u32) memblock.memory.regions[0].base; |
282 | memory_end = (u32) memblock.memory.region[0].base + | 278 | memory_end = (u32) memblock.memory.regions[0].base + |
283 | (u32) memblock.memory.region[0].size; | 279 | (u32) memblock.memory.regions[0].size; |
284 | memory_size = memory_end - memory_start; | 280 | memory_size = memory_end - memory_start; |
285 | 281 | ||
286 | mm_cmdline_setup(); /* FIXME parse args from command line - not used */ | 282 | mm_cmdline_setup(); /* FIXME parse args from command line - not used */ |