1 #include <linux/bootmem.h>
2 #include <linux/init.h>
4 #include <linux/of_fdt.h>
5 #include <asm/byteorder.h>
7 static int __init
reserve_mem_mach(unsigned long addr
, unsigned long size
)
9 return reserve_bootmem(addr
, size
, BOOTMEM_DEFAULT
);
12 void __init
free_mem_mach(unsigned long addr
, unsigned long size
)
14 return free_bootmem(addr
, size
);
17 void __init
device_tree_init(void)
19 unsigned long base
, size
;
21 if (!initial_boot_params
)
24 base
= virt_to_phys((void *)initial_boot_params
);
25 size
= be32_to_cpu(initial_boot_params
->totalsize
);
27 /* Before we do anything, lets reserve the dt blob */
28 reserve_mem_mach(base
, size
);
30 unflatten_device_tree();
32 /* free the space reserved for the dt blob */
33 free_mem_mach(base
, size
);