diff options
Diffstat (limited to 'arch/powerpc/kernel/prom.c')
-rw-r--r-- | arch/powerpc/kernel/prom.c | 22 |
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 | ||
597 | static void __init early_reserve_mem(void) | 597 | static 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 | ||
662 | void __init early_init_devtree(void *params) | 640 | void __init early_init_devtree(void *params) |