aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/prom.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/kernel/prom.c')
-rw-r--r--arch/powerpc/kernel/prom.c22
1 files changed, 0 insertions, 22 deletions
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index e5e2b6f63567..73b7e9b45054 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -596,19 +596,11 @@ static void __init early_reserve_mem_dt(void)
596 596
597static void __init early_reserve_mem(void) 597static void __init early_reserve_mem(void)
598{ 598{
599 u64 base, size;
600 __be64 *reserve_map; 599 __be64 *reserve_map;
601 unsigned long self_base;
602 unsigned long self_size;
603 600
604 reserve_map = (__be64 *)(((unsigned long)initial_boot_params) + 601 reserve_map = (__be64 *)(((unsigned long)initial_boot_params) +
605 be32_to_cpu(initial_boot_params->off_mem_rsvmap)); 602 be32_to_cpu(initial_boot_params->off_mem_rsvmap));
606 603
607 /* before we do anything, lets reserve the dt blob */
608 self_base = __pa((unsigned long)initial_boot_params);
609 self_size = be32_to_cpu(initial_boot_params->totalsize);
610 memblock_reserve(self_base, self_size);
611
612 /* Look for the new "reserved-regions" property in the DT */ 604 /* Look for the new "reserved-regions" property in the DT */
613 early_reserve_mem_dt(); 605 early_reserve_mem_dt();
614 606
@@ -637,26 +629,12 @@ static void __init early_reserve_mem(void)
637 size_32 = be32_to_cpup(reserve_map_32++); 629 size_32 = be32_to_cpup(reserve_map_32++);
638 if (size_32 == 0) 630 if (size_32 == 0)
639 break; 631 break;
640 /* skip if the reservation is for the blob */
641 if (base_32 == self_base && size_32 == self_size)
642 continue;
643 DBG("reserving: %x -> %x\n", base_32, size_32); 632 DBG("reserving: %x -> %x\n", base_32, size_32);
644 memblock_reserve(base_32, size_32); 633 memblock_reserve(base_32, size_32);
645 } 634 }
646 return; 635 return;
647 } 636 }
648#endif 637#endif
649 DBG("Processing reserve map\n");
650
651 /* Handle the reserve map in the fdt blob if it exists */
652 while (1) {
653 base = be64_to_cpup(reserve_map++);
654 size = be64_to_cpup(reserve_map++);
655 if (size == 0)
656 break;
657 DBG("reserving: %llx -> %llx\n", base, size);
658 memblock_reserve(base, size);
659 }
660} 638}
661 639
662void __init early_init_devtree(void *params) 640void __init early_init_devtree(void *params)