diff options
| -rw-r--r-- | arch/mips/lantiq/prom.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/arch/mips/lantiq/prom.c b/arch/mips/lantiq/prom.c index d185e8477fd..6cfd6117fbf 100644 --- a/arch/mips/lantiq/prom.c +++ b/arch/mips/lantiq/prom.c | |||
| @@ -8,7 +8,10 @@ | |||
| 8 | 8 | ||
| 9 | #include <linux/export.h> | 9 | #include <linux/export.h> |
| 10 | #include <linux/clk.h> | 10 | #include <linux/clk.h> |
| 11 | #include <linux/bootmem.h> | ||
| 11 | #include <linux/of_platform.h> | 12 | #include <linux/of_platform.h> |
| 13 | #include <linux/of_fdt.h> | ||
| 14 | |||
| 12 | #include <asm/bootinfo.h> | 15 | #include <asm/bootinfo.h> |
| 13 | #include <asm/time.h> | 16 | #include <asm/time.h> |
| 14 | 17 | ||
| @@ -70,6 +73,25 @@ void __init plat_mem_setup(void) | |||
| 70 | __dt_setup_arch(&__dtb_start); | 73 | __dt_setup_arch(&__dtb_start); |
| 71 | } | 74 | } |
| 72 | 75 | ||
| 76 | void __init device_tree_init(void) | ||
| 77 | { | ||
| 78 | unsigned long base, size; | ||
| 79 | |||
| 80 | if (!initial_boot_params) | ||
| 81 | return; | ||
| 82 | |||
| 83 | base = virt_to_phys((void *)initial_boot_params); | ||
| 84 | size = be32_to_cpu(initial_boot_params->totalsize); | ||
| 85 | |||
| 86 | /* Before we do anything, lets reserve the dt blob */ | ||
| 87 | reserve_bootmem(base, size, BOOTMEM_DEFAULT); | ||
| 88 | |||
| 89 | unflatten_device_tree(); | ||
| 90 | |||
| 91 | /* free the space reserved for the dt blob */ | ||
| 92 | free_bootmem(base, size); | ||
| 93 | } | ||
| 94 | |||
| 73 | void __init prom_init(void) | 95 | void __init prom_init(void) |
| 74 | { | 96 | { |
| 75 | /* call the soc specific detetcion code and get it to fill soc_info */ | 97 | /* call the soc specific detetcion code and get it to fill soc_info */ |
