diff options
Diffstat (limited to 'arch/mips')
-rw-r--r-- | arch/mips/configs/cavium_octeon_defconfig | 1 | ||||
-rw-r--r-- | arch/mips/kernel/setup.c | 1 | ||||
-rw-r--r-- | arch/mips/kernel/traps.c | 3 | ||||
-rw-r--r-- | arch/mips/loongson64/loongson-3/numa.c | 12 | ||||
-rw-r--r-- | arch/mips/sgi-ip27/ip27-memory.c | 11 |
5 files changed, 6 insertions, 22 deletions
diff --git a/arch/mips/configs/cavium_octeon_defconfig b/arch/mips/configs/cavium_octeon_defconfig index 490b12af103c..c52d0efacd14 100644 --- a/arch/mips/configs/cavium_octeon_defconfig +++ b/arch/mips/configs/cavium_octeon_defconfig | |||
@@ -140,6 +140,7 @@ CONFIG_RTC_CLASS=y | |||
140 | CONFIG_RTC_DRV_DS1307=y | 140 | CONFIG_RTC_DRV_DS1307=y |
141 | CONFIG_STAGING=y | 141 | CONFIG_STAGING=y |
142 | CONFIG_OCTEON_ETHERNET=y | 142 | CONFIG_OCTEON_ETHERNET=y |
143 | CONFIG_OCTEON_USB=y | ||
143 | # CONFIG_IOMMU_SUPPORT is not set | 144 | # CONFIG_IOMMU_SUPPORT is not set |
144 | CONFIG_RAS=y | 145 | CONFIG_RAS=y |
145 | CONFIG_EXT4_FS=y | 146 | CONFIG_EXT4_FS=y |
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c index ea09ed6a80a9..8c6c48ed786a 100644 --- a/arch/mips/kernel/setup.c +++ b/arch/mips/kernel/setup.c | |||
@@ -794,6 +794,7 @@ static void __init arch_mem_init(char **cmdline_p) | |||
794 | 794 | ||
795 | /* call board setup routine */ | 795 | /* call board setup routine */ |
796 | plat_mem_setup(); | 796 | plat_mem_setup(); |
797 | memblock_set_bottom_up(true); | ||
797 | 798 | ||
798 | /* | 799 | /* |
799 | * Make sure all kernel memory is in the maps. The "UP" and | 800 | * Make sure all kernel memory is in the maps. The "UP" and |
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index 0f852e1b5891..15e103c6d799 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c | |||
@@ -2260,10 +2260,8 @@ void __init trap_init(void) | |||
2260 | unsigned long size = 0x200 + VECTORSPACING*64; | 2260 | unsigned long size = 0x200 + VECTORSPACING*64; |
2261 | phys_addr_t ebase_pa; | 2261 | phys_addr_t ebase_pa; |
2262 | 2262 | ||
2263 | memblock_set_bottom_up(true); | ||
2264 | ebase = (unsigned long) | 2263 | ebase = (unsigned long) |
2265 | memblock_alloc_from(size, 1 << fls(size), 0); | 2264 | memblock_alloc_from(size, 1 << fls(size), 0); |
2266 | memblock_set_bottom_up(false); | ||
2267 | 2265 | ||
2268 | /* | 2266 | /* |
2269 | * Try to ensure ebase resides in KSeg0 if possible. | 2267 | * Try to ensure ebase resides in KSeg0 if possible. |
@@ -2307,6 +2305,7 @@ void __init trap_init(void) | |||
2307 | if (board_ebase_setup) | 2305 | if (board_ebase_setup) |
2308 | board_ebase_setup(); | 2306 | board_ebase_setup(); |
2309 | per_cpu_trap_init(true); | 2307 | per_cpu_trap_init(true); |
2308 | memblock_set_bottom_up(false); | ||
2310 | 2309 | ||
2311 | /* | 2310 | /* |
2312 | * Copy the generic exception handlers to their final destination. | 2311 | * Copy the generic exception handlers to their final destination. |
diff --git a/arch/mips/loongson64/loongson-3/numa.c b/arch/mips/loongson64/loongson-3/numa.c index 622761878cd1..60bf0a1cb757 100644 --- a/arch/mips/loongson64/loongson-3/numa.c +++ b/arch/mips/loongson64/loongson-3/numa.c | |||
@@ -231,6 +231,8 @@ static __init void prom_meminit(void) | |||
231 | cpumask_clear(&__node_data[(node)]->cpumask); | 231 | cpumask_clear(&__node_data[(node)]->cpumask); |
232 | } | 232 | } |
233 | } | 233 | } |
234 | max_low_pfn = PHYS_PFN(memblock_end_of_DRAM()); | ||
235 | |||
234 | for (cpu = 0; cpu < loongson_sysconf.nr_cpus; cpu++) { | 236 | for (cpu = 0; cpu < loongson_sysconf.nr_cpus; cpu++) { |
235 | node = cpu / loongson_sysconf.cores_per_node; | 237 | node = cpu / loongson_sysconf.cores_per_node; |
236 | if (node >= num_online_nodes()) | 238 | if (node >= num_online_nodes()) |
@@ -248,19 +250,9 @@ static __init void prom_meminit(void) | |||
248 | 250 | ||
249 | void __init paging_init(void) | 251 | void __init paging_init(void) |
250 | { | 252 | { |
251 | unsigned node; | ||
252 | unsigned long zones_size[MAX_NR_ZONES] = {0, }; | 253 | unsigned long zones_size[MAX_NR_ZONES] = {0, }; |
253 | 254 | ||
254 | pagetable_init(); | 255 | pagetable_init(); |
255 | |||
256 | for_each_online_node(node) { | ||
257 | unsigned long start_pfn, end_pfn; | ||
258 | |||
259 | get_pfn_range_for_nid(node, &start_pfn, &end_pfn); | ||
260 | |||
261 | if (end_pfn > max_low_pfn) | ||
262 | max_low_pfn = end_pfn; | ||
263 | } | ||
264 | #ifdef CONFIG_ZONE_DMA32 | 256 | #ifdef CONFIG_ZONE_DMA32 |
265 | zones_size[ZONE_DMA32] = MAX_DMA32_PFN; | 257 | zones_size[ZONE_DMA32] = MAX_DMA32_PFN; |
266 | #endif | 258 | #endif |
diff --git a/arch/mips/sgi-ip27/ip27-memory.c b/arch/mips/sgi-ip27/ip27-memory.c index d8b8444d6795..813d13f92957 100644 --- a/arch/mips/sgi-ip27/ip27-memory.c +++ b/arch/mips/sgi-ip27/ip27-memory.c | |||
@@ -435,6 +435,7 @@ void __init prom_meminit(void) | |||
435 | 435 | ||
436 | mlreset(); | 436 | mlreset(); |
437 | szmem(); | 437 | szmem(); |
438 | max_low_pfn = PHYS_PFN(memblock_end_of_DRAM()); | ||
438 | 439 | ||
439 | for (node = 0; node < MAX_COMPACT_NODES; node++) { | 440 | for (node = 0; node < MAX_COMPACT_NODES; node++) { |
440 | if (node_online(node)) { | 441 | if (node_online(node)) { |
@@ -455,18 +456,8 @@ extern void setup_zero_pages(void); | |||
455 | void __init paging_init(void) | 456 | void __init paging_init(void) |
456 | { | 457 | { |
457 | unsigned long zones_size[MAX_NR_ZONES] = {0, }; | 458 | unsigned long zones_size[MAX_NR_ZONES] = {0, }; |
458 | unsigned node; | ||
459 | 459 | ||
460 | pagetable_init(); | 460 | pagetable_init(); |
461 | |||
462 | for_each_online_node(node) { | ||
463 | unsigned long start_pfn, end_pfn; | ||
464 | |||
465 | get_pfn_range_for_nid(node, &start_pfn, &end_pfn); | ||
466 | |||
467 | if (end_pfn > max_low_pfn) | ||
468 | max_low_pfn = end_pfn; | ||
469 | } | ||
470 | zones_size[ZONE_NORMAL] = max_low_pfn; | 461 | zones_size[ZONE_NORMAL] = max_low_pfn; |
471 | free_area_init_nodes(zones_size); | 462 | free_area_init_nodes(zones_size); |
472 | } | 463 | } |