Merge tag 'devicetree-for-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
Pull devicetree updates from Rob Herring: "DeviceTree updates for 3.13. This is a bit larger pull request than usual for this cycle with lots of clean-up. - Cross arch clean-up and consolidation of early DT scanning code. - Clean-up and removal of arch prom.h headers. Makes arch specific prom.h optional on all but Sparc. - Addition of interrupts-extended property for devices connected to multiple interrupt controllers. - Refactoring of DT interrupt parsing code in preparation for deferred probe of interrupts. - ARM cpu and cpu topology bindings documentation. - Various DT vendor binding documentation updates" * tag 'devicetree-for-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (82 commits) powerpc: add missing explicit OF includes for ppc dt/irq: add empty of_irq_count for !OF_IRQ dt: disable self-tests for !OF_IRQ of: irq: Fix interrupt-map entry matching MIPS: Netlogic: replace early_init_devtree() call of: Add Panasonic Corporation vendor prefix of: Add Chunghwa Picture Tubes Ltd. vendor prefix of: Add AU Optronics Corporation vendor prefix of/irq: Fix potential buffer overflow of/irq: Fix bug in interrupt parsing refactor. of: set dma_mask to point to coherent_dma_mask of: add vendor prefix for PHYTEC Messtechnik GmbH DT: sort vendor-prefixes.txt of: Add vendor prefix for Cadence of: Add empty for_each_available_child_of_node() macro definition arm/versatile: Fix versatile irq specifications. of/irq: create interrupts-extended property microblaze/pci: Drop PowerPC-ism from irq parsing of/irq: Create of_irq_parse_and_map_pci() to consolidate arch code. of/irq: Use irq_of_parse_and_map() ...
This commit is contained in:
@@ -39,8 +39,11 @@
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/of_device.h>
|
||||
|
||||
#include <asm/prom.h>
|
||||
|
||||
extern u32 __dtb_xlp_evp_begin[], __dtb_xlp_svp_begin[],
|
||||
__dtb_xlp_fvp_begin[], __dtb_start[];
|
||||
static void *xlp_fdt_blob;
|
||||
|
||||
void __init *xlp_dt_init(void *fdtp)
|
||||
{
|
||||
@@ -67,19 +70,26 @@ void __init *xlp_dt_init(void *fdtp)
|
||||
break;
|
||||
}
|
||||
}
|
||||
initial_boot_params = fdtp;
|
||||
xlp_fdt_blob = fdtp;
|
||||
return fdtp;
|
||||
}
|
||||
|
||||
void __init xlp_early_init_devtree(void)
|
||||
{
|
||||
__dt_setup_arch(xlp_fdt_blob);
|
||||
strlcpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE);
|
||||
}
|
||||
|
||||
void __init device_tree_init(void)
|
||||
{
|
||||
unsigned long base, size;
|
||||
struct boot_param_header *fdtp = xlp_fdt_blob;
|
||||
|
||||
if (!initial_boot_params)
|
||||
if (!fdtp)
|
||||
return;
|
||||
|
||||
base = virt_to_phys((void *)initial_boot_params);
|
||||
size = be32_to_cpu(initial_boot_params->totalsize);
|
||||
base = virt_to_phys(fdtp);
|
||||
size = be32_to_cpu(fdtp->totalsize);
|
||||
|
||||
/* Before we do anything, lets reserve the dt blob */
|
||||
reserve_bootmem(base, size, BOOTMEM_DEFAULT);
|
||||
|
@@ -98,7 +98,7 @@ void __init plat_mem_setup(void)
|
||||
pm_power_off = nlm_linux_exit;
|
||||
|
||||
/* memory and bootargs from DT */
|
||||
early_init_devtree(initial_boot_params);
|
||||
xlp_early_init_devtree();
|
||||
|
||||
if (boot_mem_map.nr_map == 0) {
|
||||
pr_info("Using DRAM BARs for memory map.\n");
|
||||
|
Reference in New Issue
Block a user