aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrant Likely <grant.likely@secretlab.ca>2009-11-23 16:53:09 -0500
committerGrant Likely <grant.likely@secretlab.ca>2009-11-23 16:53:09 -0500
commite169cfbef46d62e042614ffafa8880eed1d894bb (patch)
tree44982b47e17dc361783d89629fbdde751cbc35e3
parent2cfcadde83b308240690ff1c18f117d8bc7a08b0 (diff)
of/flattree: merge find_flat_dt_string and initial_boot_params
Merge common code between Microblaze and PowerPC. Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Reviewed-by: Wolfram Sang <w.sang@pengutronix.de> Tested-by: Michal Simek <monstr@monstr.eu>
-rw-r--r--arch/microblaze/Kconfig1
-rw-r--r--arch/microblaze/kernel/prom.c8
-rw-r--r--arch/powerpc/Kconfig1
-rw-r--r--arch/powerpc/kernel/prom.c12
-rw-r--r--drivers/of/Kconfig4
-rw-r--r--drivers/of/Makefile1
-rw-r--r--drivers/of/fdt.c21
-rw-r--r--include/linux/of_fdt.h4
8 files changed, 32 insertions, 20 deletions
diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig
index bbd8327f1890..f39c9275a29b 100644
--- a/arch/microblaze/Kconfig
+++ b/arch/microblaze/Kconfig
@@ -111,6 +111,7 @@ config CMDLINE_FORCE
111 111
112config OF 112config OF
113 def_bool y 113 def_bool y
114 select OF_FLATTREE
114 115
115config PROC_DEVICETREE 116config PROC_DEVICETREE
116 bool "Support for device tree in /proc" 117 bool "Support for device tree in /proc"
diff --git a/arch/microblaze/kernel/prom.c b/arch/microblaze/kernel/prom.c
index b817df172aa9..06d620ab4168 100644
--- a/arch/microblaze/kernel/prom.c
+++ b/arch/microblaze/kernel/prom.c
@@ -47,17 +47,9 @@ static int __initdata dt_root_size_cells;
47 47
48typedef u32 cell_t; 48typedef u32 cell_t;
49 49
50static struct boot_param_header *initial_boot_params;
51
52/* export that to outside world */ 50/* export that to outside world */
53struct device_node *of_chosen; 51struct device_node *of_chosen;
54 52
55static inline char *find_flat_dt_string(u32 offset)
56{
57 return ((char *)initial_boot_params) +
58 initial_boot_params->off_dt_strings + offset;
59}
60
61/** 53/**
62 * This function is used to scan the flattened device-tree, it is 54 * This function is used to scan the flattened device-tree, it is
63 * used to extract the memory informations at boot before we can 55 * used to extract the memory informations at boot before we can
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 2ba14e77296c..2a75c6ae2a8b 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -163,6 +163,7 @@ config PPC_OF
163 163
164config OF 164config OF
165 def_bool y 165 def_bool y
166 select OF_FLATTREE
166 167
167config PPC_UDBG_16550 168config PPC_UDBG_16550
168 bool 169 bool
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index 4ec300862466..fccf7e49bb28 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -73,12 +73,6 @@ unsigned long tce_alloc_start, tce_alloc_end;
73 73
74typedef u32 cell_t; 74typedef u32 cell_t;
75 75
76#if 0
77static struct boot_param_header *initial_boot_params __initdata;
78#else
79struct boot_param_header *initial_boot_params;
80#endif
81
82extern struct device_node *allnodes; /* temporary while merging */ 76extern struct device_node *allnodes; /* temporary while merging */
83 77
84extern rwlock_t devtree_lock; /* temporary while merging */ 78extern rwlock_t devtree_lock; /* temporary while merging */
@@ -86,12 +80,6 @@ extern rwlock_t devtree_lock; /* temporary while merging */
86/* export that to outside world */ 80/* export that to outside world */
87struct device_node *of_chosen; 81struct device_node *of_chosen;
88 82
89static inline char *find_flat_dt_string(u32 offset)
90{
91 return ((char *)initial_boot_params) +
92 initial_boot_params->off_dt_strings + offset;
93}
94
95/** 83/**
96 * This function is used to scan the flattened device-tree, it is 84 * This function is used to scan the flattened device-tree, it is
97 * used to extract the memory informations at boot before we can 85 * used to extract the memory informations at boot before we can
diff --git a/drivers/of/Kconfig b/drivers/of/Kconfig
index d2fa27c5c1b2..462825e03123 100644
--- a/drivers/of/Kconfig
+++ b/drivers/of/Kconfig
@@ -1,3 +1,7 @@
1config OF_FLATTREE
2 bool
3 depends on OF
4
1config OF_DEVICE 5config OF_DEVICE
2 def_bool y 6 def_bool y
3 depends on OF && (SPARC || PPC_OF || MICROBLAZE) 7 depends on OF && (SPARC || PPC_OF || MICROBLAZE)
diff --git a/drivers/of/Makefile b/drivers/of/Makefile
index bdfb5f5d4b06..f232cc98ce00 100644
--- a/drivers/of/Makefile
+++ b/drivers/of/Makefile
@@ -1,4 +1,5 @@
1obj-y = base.o 1obj-y = base.o
2obj-$(CONFIG_OF_FLATTREE) += fdt.o
2obj-$(CONFIG_OF_DEVICE) += device.o platform.o 3obj-$(CONFIG_OF_DEVICE) += device.o platform.o
3obj-$(CONFIG_OF_GPIO) += gpio.o 4obj-$(CONFIG_OF_GPIO) += gpio.o
4obj-$(CONFIG_OF_I2C) += of_i2c.o 5obj-$(CONFIG_OF_I2C) += of_i2c.o
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
new file mode 100644
index 000000000000..9faa9a5cbdf0
--- /dev/null
+++ b/drivers/of/fdt.c
@@ -0,0 +1,21 @@
1/*
2 * Functions for working with the Flattened Device Tree data format
3 *
4 * Copyright 2009 Benjamin Herrenschmidt, IBM Corp
5 * benh@kernel.crashing.org
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * version 2 as published by the Free Software Foundation.
10 */
11
12#include <linux/of.h>
13#include <linux/of_fdt.h>
14
15struct boot_param_header *initial_boot_params;
16
17char *find_flat_dt_string(u32 offset)
18{
19 return ((char *)initial_boot_params) +
20 initial_boot_params->off_dt_strings + offset;
21}
diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h
index 41d432b13553..d1a79f3da789 100644
--- a/include/linux/of_fdt.h
+++ b/include/linux/of_fdt.h
@@ -57,7 +57,11 @@ struct boot_param_header {
57 u32 dt_struct_size; /* size of the DT structure block */ 57 u32 dt_struct_size; /* size of the DT structure block */
58}; 58};
59 59
60/* TBD: Temporary export of fdt globals - remove when code fully merged */
61extern struct boot_param_header *initial_boot_params;
62
60/* For scanning the flat device-tree at boot time */ 63/* For scanning the flat device-tree at boot time */
64extern char *find_flat_dt_string(u32 offset);
61extern int __init of_scan_flat_dt(int (*it)(unsigned long node, 65extern int __init of_scan_flat_dt(int (*it)(unsigned long node,
62 const char *uname, int depth, 66 const char *uname, int depth,
63 void *data), 67 void *data),