aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/of/fdt.c
Commit message (Collapse)AuthorAgeFilesLines
* of/flattree: Eliminate need to provide early_init_dt_scan_chosen_archGrant Likely2010-10-211-2/+0
| | | | | | | | | | | | | | This patch refactors the early init parsing of the chosen node so that architectures aren't forced to provide an empty implementation of early_init_dt_scan_chosen_arch. Instead, if an architecture wants to do something different, it can either use a wrapper function around early_init_dt_scan_chosen(), or it can replace it altogether. This patch was written in preparation to adding device tree support to both x86 ad MIPS. Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Tested-by: David Daney <ddaney@caviumnetworks.com>
* of: Fix phandle endian issuesGrant Likely2010-07-241-2/+2
| | | | | | | | | The flat tree code wasn't fixing the endianness on phandle values when unflattening the tree, and the code in drivers/of wasn't always doing a be32_to_cpu before trying to dereference the phandle values. This patch fixes them. Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
* of/flattree: fix of_flat_dt_is_compatible() to match the full compatible stringStuart Yoder2010-07-241-1/+1
| | | | | | | | | | | With the current string comparison, a device tree compatible of "foo-bar" would match as compatible with a driver looking for "foo". This patch fixes the function to use the of_compat_cmp() macro so that it does the right thing on all platforms (If sparc ever uses this code, it will still want the strncasecmp() behaviour). Signed-off-by: Stuart Yoder <stuart.yoder@freescale.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
* of/flattree: Use common ALIGN() macro instead of arch specific _ALIGNGrant Likely2010-07-141-10/+10
| | | | | | | | | There's no reason to use the powerpc-specific _ALIGN macro in the fdt code. Replace it with ALIGN() from kernel.h Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Acked-By: Jeremy Kerr <jeremy.kerr@canonical.com> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
* of/flattree: Make unflatten_device_tree() safe to call from any archGrant Likely2010-04-281-0/+15
| | | | | | | | | | | | | | | This patch makes unflatten_device_tree() safe to call from any arch setup code with the following changes: - Make sure initial_boot_params actually points to a device tree blob before unflattening - Make sure the initial_boot_params->magic field is correct - If CONFIG_OF_FLATTREE is not set, then make unflatten_device_tree() an empty static inline function. This patch also adds some additional debug output to the top of unflatten_device_tree(). Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
* of/flattree: Fix unhandled OF_DT_NOP tag when unflattening the device treeJason Gunthorpe2010-03-261-2/+5
| | | | | | | | | | | NOPs within the property section are skipped, but NOPs between OF_DT_END_NODE and OF_DT_BEGIN_NODE were not. My firmware NOPs out entire nodes depending on various environment parameters. of_scan_flat_dt already handles NOP more generally. Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
* of/flattree: Don't assume HAVE_LMBJeremy Kerr2010-02-141-3/+6
| | | | | | | | | | | | | We don't always have lmb available, so make arches provide an early_init_dt_alloc_memory_arch() to handle the allocation of memory in the fdt code. When we don't have lmb.h included, we need asm/page.h for __va. Signed-off-by: Jeremy Kerr <jeremy.kerr@canonical.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Acked-by: Michal Simek <monstr@monstr.eu>
* of/flattree: Make the kernel accept ePAPR style phandle informationDavid Gibson2010-02-091-1/+10
| | | | | | | | | | | Currently when processing flattened device trees, the kernel expects the phandle in a property called "linux,phandle". The ePAPR spec - not being Linux specific - instead requires phandles to be encoded in a property named simply "phandle". This patch makes the kernel accept either form when unflattening the device tree. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
* of/flattree: endian-convert members of boot_param_headerJeremy Kerr2010-02-091-8/+8
| | | | | | | | The boot_param_header has big-endian fields, so change the types to __be32, and perform endian conversion when we access them. Signed-off-by: Jeremy Kerr <jeremy.kerr@canonical.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
* of: assume big-endian properties, adding conversions where necessaryJeremy Kerr2010-02-091-20/+25
| | | | | | | | | | | | | | | | Properties in the device tree are specified as big-endian. At present, the only platforms to support device trees are also big-endian, so we've been acessing the properties as raw values. We'd like to add device tree support to little-endian platforms too, so add endian conversion to the sites where we access property values in the common of code. Compiled on powerpc (ppc44x_defconfig & ppc64_defconfig) and arm (fdt support only for now). Signed-off-by: Jeremy Kerr <jeremy.kerr@canonical.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
* of: use __be32 for cell value accessorsJeremy Kerr2010-02-091-2/+2
| | | | | | | | | | | Currently, we're using u32 for cell values, and hence assuming host-endian device trees. As we'd like to support little-endian platforms, use a __be32 for cell values, and convert in the cell accessors. Signed-off-by: Jeremy Kerr <jeremy.kerr@canonical.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
* of/flattree: use OF_ROOT_NODE_{SIZE,ADDR}_CELLS DEFAULT for fdt parsingJeremy Kerr2010-02-091-2/+2
| | | | | | | | At present we're using hard-coded values for defaults when parsing the FDT. This change uses the #defines instead. Signed-off-by: Jeremy Kerr <jeremy.kerr@canonical.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
* of/flattree: use callback to setup initrd from /chosenJeremy Kerr2010-02-091-16/+11
| | | | | | | | | | | | | | | | | | | At present, the fdt code sets the kernel-wide initrd_start and initrd_end variables when parsing /chosen. On ARM, we only set these once the bootmem has been reserved. This change adds an arch hook to setup the initrd from the device tree: void early_init_dt_setup_initrd_arch(unsigned long start, unsigned long end); The arch-specific code can then setup the initrd however it likes. Compiled on powerpc, with CONFIG_BLK_DEV_INITRD=y and =n. Signed-off-by: Jeremy Kerr <jeremy.kerr@canonical.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
* of/flattree: merge early_init_dt_scan_memory() common codeGrant Likely2010-02-091-0/+50
| | | | | | | Merge common code between PowerPC and Microblaze architectures. Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Acked-by: Michal Simek <monstr@monstr.eu>
* of: unify phandle name in struct device_nodeGrant Likely2010-01-281-4/+3
| | | | | | | | | | | | | | | | | | | | | In struct device_node, the phandle is named 'linux_phandle' for PowerPC and MicroBlaze, and 'node' for SPARC. There is no good reason for the difference, it is just an artifact of the code diverging over a couple of years. This patch renames both to simply .phandle. Note: the .node also existed in PowerPC/MicroBlaze, but the only user seems to be arch/powerpc/platforms/powermac/pfunc_core.c. It doesn't look like the assignment between .linux_phandle and .node is significantly different enough to warrant the separate code paths unless ibm,phandle properties actually appear in Apple device trees. I think it is safe to eliminate the old .node property and use phandle everywhere. Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Acked-by: David S. Miller <davem@davemloft.net> Tested-by: Wolfram Sang <w.sang@pengutronix.de> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
* of/flattree: merge early_init_dt_scan_chosen()Grant Likely2009-12-101-0/+38
| | | | | | | | | | Merge common code between PowerPC and Microblaze. This patch splits the arch-specific stuff out into a new function, early_init_dt_scan_chosen_arch(). Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Tested-by: Wolfram Sang <w.sang@pengutronix.de> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
* of/flattree: merge dt_mem_next_cellGrant Likely2009-12-101-0/+8
| | | | | | | | Merge common code between PowerPC and Microblaze Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Tested-by: Wolfram Sang <w.sang@pengutronix.de>
* of/flattree: Merge earlyinit_dt_scan_root()Grant Likely2009-12-101-0/+26
| | | | | | | | Merge common code between PowerPC and Microblaze Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Tested-by: Wolfram Sang <w.sang@pengutronix.de>
* of/flattree: Merge early_init_dt_check_for_initrd()Grant Likely2009-12-101-0/+37
| | | | | | | | Merge common code between PowerPC and Microblaze Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Tested-by: Wolfram Sang <w.sang@pengutronix.de> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
* of/flattree: Merge unflatten_device_treeGrant Likely2009-11-231-0/+52
| | | | | | | | Merge common code between PowerPC and MicroBlaze Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Reviewed-by: Wolfram Sang <w.sang@pengutronix.de> Tested-by: Michal Simek <monstr@monstr.eu>
* of/flattree: Merge unflatten_dt_nodeGrant Likely2009-11-231-0/+200
| | | | | | | | Merge common code between PowerPC and MicroBlaze Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Reviewed-by: Wolfram Sang <w.sang@pengutronix.de> Tested-by: Michal Simek <monstr@monstr.eu>
* of/flattree: Merge of_flat_dt_is_compatibleGrant Likely2009-11-231-0/+24
| | | | | | | | Merge common code between PowerPC and Microblaze Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Reviewed-by: Wolfram Sang <w.sang@pengutronix.de> Tested-by: Michal Simek <monstr@monstr.eu>
* of/flattree: merge of_get_flat_dt_propGrant Likely2009-11-231-0/+43
| | | | | | | | Merge common code between PowerPC and Microblaze Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Reviewed-by: Wolfram Sang <w.sang@pengutronix.de> Tested-by: Michal Simek <monstr@monstr.eu>
* of/flattree: merge of_get_flat_dt_rootGrant Likely2009-11-231-0/+16
| | | | | | | | Merge common code between PowerPC and MicroBlaze Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Reviewed-by: Wolfram Sang <w.sang@pengutronix.de> Tested-by: Michal Simek <monstr@monstr.eu>
* of/flattree: merge of_scan_flat_dtGrant Likely2009-11-231-0/+64
| | | | | | | | Merge common code between PowerPC and Microblaze Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Reviewed-by: Wolfram Sang <w.sang@pengutronix.de> Tested-by: Michal Simek <monstr@monstr.eu>
* of/flattree: merge find_flat_dt_string and initial_boot_paramsGrant Likely2009-11-231-0/+21
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>