Commit 3486892f authored by Rob Herring's avatar Rob Herring

openrisc: use unflatten_and_copy_device_tree

Use the common unflatten_and_copy_device_tree to copy the built-in FDT
out of init section. This moves the copy later in the boot, but there
do not appear to be any references to strings in the FDT before the copy.
Signed-off-by: default avatarRob Herring <rob.herring@calxeda.com>
Cc: Jonas Bonn <jonas@southpole.se>
Cc: linux@lists.openrisc.net
parent 1efc959e
...@@ -55,8 +55,6 @@ void __init early_init_dt_add_memory_arch(u64 base, u64 size) ...@@ -55,8 +55,6 @@ void __init early_init_dt_add_memory_arch(u64 base, u64 size)
void __init early_init_devtree(void *params) void __init early_init_devtree(void *params)
{ {
void *alloc;
/* Setup flat device-tree pointer */ /* Setup flat device-tree pointer */
initial_boot_params = params; initial_boot_params = params;
...@@ -72,17 +70,6 @@ void __init early_init_devtree(void *params) ...@@ -72,17 +70,6 @@ void __init early_init_devtree(void *params)
of_scan_flat_dt(early_init_dt_scan_memory, NULL); of_scan_flat_dt(early_init_dt_scan_memory, NULL);
memblock_allow_resize(); memblock_allow_resize();
/* We must copy the flattend device tree from init memory to regular
* memory because the device tree references the strings in it
* directly.
*/
alloc = __va(memblock_alloc(initial_boot_params->totalsize, PAGE_SIZE));
memcpy(alloc, initial_boot_params, initial_boot_params->totalsize);
initial_boot_params = alloc;
} }
#ifdef CONFIG_BLK_DEV_INITRD #ifdef CONFIG_BLK_DEV_INITRD
......
...@@ -283,7 +283,7 @@ void __init setup_arch(char **cmdline_p) ...@@ -283,7 +283,7 @@ void __init setup_arch(char **cmdline_p)
{ {
unsigned long max_low_pfn; unsigned long max_low_pfn;
unflatten_device_tree(); unflatten_and_copy_device_tree();
setup_cpuinfo(); setup_cpuinfo();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment