diff options
| -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), |
