aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorRob Herring <rob.herring@calxeda.com>2013-08-26 12:23:50 -0400
committerRob Herring <rob.herring@calxeda.com>2013-10-09 12:38:04 -0400
commit3486892f998fea5b4f1a0a4d093f09b7d0024696 (patch)
tree3daa4d3a8066395a616ec25fdc84a8113d31a1e8 /arch
parent1efc959e0b28942d69d3084ecd4e9bde3beb9866 (diff)
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: Rob Herring <rob.herring@calxeda.com> Cc: Jonas Bonn <jonas@southpole.se> Cc: linux@lists.openrisc.net
Diffstat (limited to 'arch')
-rw-r--r--arch/openrisc/kernel/prom.c13
-rw-r--r--arch/openrisc/kernel/setup.c2
2 files changed, 1 insertions, 14 deletions
diff --git a/arch/openrisc/kernel/prom.c b/arch/openrisc/kernel/prom.c
index bf3fd05703c3..3b94972e52b2 100644
--- a/arch/openrisc/kernel/prom.c
+++ b/arch/openrisc/kernel/prom.c
@@ -55,8 +55,6 @@ void __init early_init_dt_add_memory_arch(u64 base, u64 size)
55 55
56void __init early_init_devtree(void *params) 56void __init early_init_devtree(void *params)
57{ 57{
58 void *alloc;
59
60 /* Setup flat device-tree pointer */ 58 /* Setup flat device-tree pointer */
61 initial_boot_params = params; 59 initial_boot_params = params;
62 60
@@ -72,17 +70,6 @@ void __init early_init_devtree(void *params)
72 of_scan_flat_dt(early_init_dt_scan_memory, NULL); 70 of_scan_flat_dt(early_init_dt_scan_memory, NULL);
73 71
74 memblock_allow_resize(); 72 memblock_allow_resize();
75
76 /* We must copy the flattend device tree from init memory to regular
77 * memory because the device tree references the strings in it
78 * directly.
79 */
80
81 alloc = __va(memblock_alloc(initial_boot_params->totalsize, PAGE_SIZE));
82
83 memcpy(alloc, initial_boot_params, initial_boot_params->totalsize);
84
85 initial_boot_params = alloc;
86} 73}
87 74
88#ifdef CONFIG_BLK_DEV_INITRD 75#ifdef CONFIG_BLK_DEV_INITRD
diff --git a/arch/openrisc/kernel/setup.c b/arch/openrisc/kernel/setup.c
index 719c5c8895c4..09a769b69572 100644
--- a/arch/openrisc/kernel/setup.c
+++ b/arch/openrisc/kernel/setup.c
@@ -283,7 +283,7 @@ void __init setup_arch(char **cmdline_p)
283{ 283{
284 unsigned long max_low_pfn; 284 unsigned long max_low_pfn;
285 285
286 unflatten_device_tree(); 286 unflatten_and_copy_device_tree();
287 287
288 setup_cpuinfo(); 288 setup_cpuinfo();
289 289