arm/dt: probe for platforms via the device tree
authorGrant Likely <grant.likely@secretlab.ca>
Thu, 28 Apr 2011 20:27:21 +0000 (14:27 -0600)
committerGrant Likely <grant.likely@secretlab.ca>
Mon, 23 May 2011 15:30:20 +0000 (09:30 -0600)
commit93c02ab40ae6e06cb24d14845d9f008fdd24f43d
treea8caf072ce7409eceb8178e952b7536bbd289460
parent6291319d4864848efc7b5d81389e2404fb478cb9
arm/dt: probe for platforms via the device tree

If a dtb is passed to the kernel then the kernel needs to iterate
through compiled-in mdescs looking for one that matches and move the
dtb data to a safe location before it gets accidentally overwritten by
the kernel.

This patch creates a new function, setup_machine_fdt() which is
analogous to the setup_machine_atags() created in the previous patch.
It does all the early setup needed to use a device tree machine
description.

v5: - Print warning with neither dtb nor atags are passed to the kernel
    - Fix bug in setting of __machine_arch_type to the selected machine,
      not just the last machine in the list.
Reported-by: Tixy <tixy@yxit.co.uk>
    - Copy command line directly into boot_command_line instead of cmd_line
v4: - Dump some output when a matching machine_desc cannot be found
v3: - Added processing of reserved list.
    - Backed out the v2 change that copied instead of reserved the
      dtb.  dtb is reserved again and the real problem was fixed by
      using alloc_bootmem_align() for early allocation of RAM for
      unflattening the tree.
    - Moved cmd_line and initrd changes to earlier patch to make series
      bisectable.
v2: Changed to save the dtb by copying into an allocated buffer.
    - Since the dtb will very likely be passed in the first 16k of ram
      where the interrupt vectors live, memblock_reserve() is
      insufficient to protect the dtb data.

[based on work originally written by Jeremy Kerr <jeremy.kerr@canonical.com>]
Tested-by: Tony Lindgren <tony@atomide.com>
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
arch/arm/include/asm/mach/arch.h
arch/arm/include/asm/prom.h
arch/arm/include/asm/setup.h
arch/arm/kernel/devtree.c
arch/arm/kernel/setup.c
arch/arm/mm/init.c