diff options
author | Grant Likely <grant.likely@secretlab.ca> | 2009-11-23 16:53:09 -0500 |
---|---|---|
committer | Grant Likely <grant.likely@secretlab.ca> | 2009-11-23 16:53:09 -0500 |
commit | e169cfbef46d62e042614ffafa8880eed1d894bb (patch) | |
tree | 44982b47e17dc361783d89629fbdde751cbc35e3 | |
parent | 2cfcadde83b308240690ff1c18f117d8bc7a08b0 (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/Kconfig | 1 | ||||
-rw-r--r-- | arch/microblaze/kernel/prom.c | 8 | ||||
-rw-r--r-- | arch/powerpc/Kconfig | 1 | ||||
-rw-r--r-- | arch/powerpc/kernel/prom.c | 12 | ||||
-rw-r--r-- | drivers/of/Kconfig | 4 | ||||
-rw-r--r-- | drivers/of/Makefile | 1 | ||||
-rw-r--r-- | drivers/of/fdt.c | 21 | ||||
-rw-r--r-- | include/linux/of_fdt.h | 4 |
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 | ||
112 | config OF | 112 | config OF |
113 | def_bool y | 113 | def_bool y |
114 | select OF_FLATTREE | ||
114 | 115 | ||
115 | config PROC_DEVICETREE | 116 | config 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 | ||
48 | typedef u32 cell_t; | 48 | typedef u32 cell_t; |
49 | 49 | ||
50 | static struct boot_param_header *initial_boot_params; | ||
51 | |||
52 | /* export that to outside world */ | 50 | /* export that to outside world */ |
53 | struct device_node *of_chosen; | 51 | struct device_node *of_chosen; |
54 | 52 | ||
55 | static 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 | ||
164 | config OF | 164 | config OF |
165 | def_bool y | 165 | def_bool y |
166 | select OF_FLATTREE | ||
166 | 167 | ||
167 | config PPC_UDBG_16550 | 168 | config 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 | ||
74 | typedef u32 cell_t; | 74 | typedef u32 cell_t; |
75 | 75 | ||
76 | #if 0 | ||
77 | static struct boot_param_header *initial_boot_params __initdata; | ||
78 | #else | ||
79 | struct boot_param_header *initial_boot_params; | ||
80 | #endif | ||
81 | |||
82 | extern struct device_node *allnodes; /* temporary while merging */ | 76 | extern struct device_node *allnodes; /* temporary while merging */ |
83 | 77 | ||
84 | extern rwlock_t devtree_lock; /* temporary while merging */ | 78 | extern 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 */ |
87 | struct device_node *of_chosen; | 81 | struct device_node *of_chosen; |
88 | 82 | ||
89 | static 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 @@ | |||
1 | config OF_FLATTREE | ||
2 | bool | ||
3 | depends on OF | ||
4 | |||
1 | config OF_DEVICE | 5 | config 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 @@ | |||
1 | obj-y = base.o | 1 | obj-y = base.o |
2 | obj-$(CONFIG_OF_FLATTREE) += fdt.o | ||
2 | obj-$(CONFIG_OF_DEVICE) += device.o platform.o | 3 | obj-$(CONFIG_OF_DEVICE) += device.o platform.o |
3 | obj-$(CONFIG_OF_GPIO) += gpio.o | 4 | obj-$(CONFIG_OF_GPIO) += gpio.o |
4 | obj-$(CONFIG_OF_I2C) += of_i2c.o | 5 | obj-$(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 | |||
15 | struct boot_param_header *initial_boot_params; | ||
16 | |||
17 | char *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 */ | ||
61 | extern 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 */ |
64 | extern char *find_flat_dt_string(u32 offset); | ||
61 | extern int __init of_scan_flat_dt(int (*it)(unsigned long node, | 65 | extern 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), |