• Grant Likely's avatar
    arm/dt: probe for platforms via the device tree · 93c02ab4
    Grant Likely authored
    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
    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: default avatarTixy <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
    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: default avatarTony Lindgren <tony@atomide.com>
    Acked-by: default avatarNicolas Pitre <nicolas.pitre@linaro.org>
    Acked-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>