Merge tag 'drivers-3.12' of git://git.infradead.org/linux-mvebu into next/soc
authorOlof Johansson <olof@lixom.net>
Fri, 16 Aug 2013 06:10:31 +0000 (23:10 -0700)
committerOlof Johansson <olof@lixom.net>
Fri, 16 Aug 2013 06:10:31 +0000 (23:10 -0700)
From Jason Cooper:
mvebu drivers changes for v3.12

 - MBus devicetree bindings
 - devbus update for address decoding window, cleanup

* tag 'drivers-3.12' of git://git.infradead.org/linux-mvebu: (35 commits)
  memory: mvebu-devbus: Remove unused variable
  ARM: mvebu: Relocate PCIe node in Armada 370 RD board
  ARM: mvebu: Fix AXP-WiFi-AP DT for MBUS DT binding
  ARM: mvebu: add support for the AXP WiFi AP board
  ARM: mvebu: use dts pre-processor for mv78230
  PCI: mvebu: Adapt to the new device tree layout
  bus: mvebu-mbus: Add devicetree binding
  ARM: kirkwood: Relocate PCIe device tree nodes
  ARM: kirkwood: Introduce MBUS_ID
  ARM: kirkwood: Introduce MBus DT node
  ARM: kirkwood: Use the preprocessor on device tree files
  ARM: kirkwood: Split DT and legacy MBus initialization
  ARM: mvebu: Relocate Armada 370/XP PCIe device tree nodes
  ARM: mvebu: Relocate Armada 370/XP DeviceBus device tree nodes
  ARM: mvebu: Add BootROM to Armada 370/XP device tree
  ARM: mvebu: Add MBus to Armada 370/XP device tree
  ARM: mvebu: Use the preprocessor on Armada 370/XP device tree files
  ARM: mvebu: Initialize MBus using the DT binding
  ARM: mvebu: Remove the harcoded BootROM window allocation
  bus: mvebu-mbus: Factorize Armada 370/XP data structures
  ...

Signed-off-by: Olof Johansson <olof@lixom.net>
1  2 
arch/arm/boot/dts/Makefile
arch/arm/mach-mvebu/platsmp.c

index af19e38f8e97a8b3b6f0524c1280eb0eb03c796c,66bb64f239dd5f55ebe951af0d716e8bfe7a2f69..1d94303d441694759a2ad4bd5492c6eb246b67c9
@@@ -101,6 -101,7 +101,7 @@@ dtb-$(CONFIG_ARCH_MSM) += msm8660-surf.
  dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \
        armada-370-mirabox.dtb \
        armada-370-rd.dtb \
+       armada-xp-axpwifiap.dtb \
        armada-xp-db.dtb \
        armada-xp-gp.dtb \
        armada-xp-openblocks-ax3-4.dtb
@@@ -183,7 -184,6 +184,7 @@@ dtb-$(CONFIG_ARCH_U8500) += snowball.dt
        ccu9540.dtb
  dtb-$(CONFIG_ARCH_S3C24XX) += s3c2416-smdk2416.dtb
  dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \
 +      emev2-kzm9d-reference.dtb \
        r8a7740-armadillo800eva.dtb \
        r8a7778-bockw.dtb \
        r8a7740-armadillo800eva-reference.dtb \
index ce81d303140598debb8e5cb9c6bb557e28268f49,864bd83fa207a4e7b991fe2584de59257b2269ca..c6b00fce6d8deccdde5473bca3bf670fcf702000
@@@ -21,6 -21,7 +21,7 @@@
  #include <linux/smp.h>
  #include <linux/clk.h>
  #include <linux/of.h>
+ #include <linux/of_address.h>
  #include <linux/mbus.h>
  #include <asm/cacheflush.h>
  #include <asm/smp_plat.h>
@@@ -29,6 -30,9 +30,9 @@@
  #include "pmsu.h"
  #include "coherency.h"
  
+ #define AXP_BOOTROM_BASE 0xfff00000
+ #define AXP_BOOTROM_SIZE 0x100000
  void __init set_secondary_cpus_clock(void)
  {
        int thiscpu;
        }
  }
  
 -static void __cpuinit armada_xp_secondary_init(unsigned int cpu)
 +static void armada_xp_secondary_init(unsigned int cpu)
  {
        armada_xp_mpic_smp_cpu_init();
  }
  
 -static int __cpuinit armada_xp_boot_secondary(unsigned int cpu,
 -                                            struct task_struct *idle)
 +static int armada_xp_boot_secondary(unsigned int cpu, struct task_struct *idle)
  {
        pr_info("Booting CPU %d\n", cpu);
  
@@@ -114,10 -119,29 +118,29 @@@ static void __init armada_xp_smp_init_c
  
  void __init armada_xp_smp_prepare_cpus(unsigned int max_cpus)
  {
+       struct device_node *node;
+       struct resource res;
+       int err;
        set_secondary_cpus_clock();
        flush_cache_all();
        set_cpu_coherent(cpu_logical_map(smp_processor_id()), 0);
-       mvebu_mbus_add_window("bootrom", 0xfff00000, SZ_1M);
+       /*
+        * In order to boot the secondary CPUs we need to ensure
+        * the bootROM is mapped at the correct address.
+        */
+       node = of_find_compatible_node(NULL, NULL, "marvell,bootrom");
+       if (!node)
+               panic("Cannot find 'marvell,bootrom' compatible node");
+       err = of_address_to_resource(node, 0, &res);
+       if (err < 0)
+               panic("Cannot get 'bootrom' node address");
+       if (res.start != AXP_BOOTROM_BASE ||
+           resource_size(&res) != AXP_BOOTROM_SIZE)
+               panic("The address for the BootROM is incorrect");
  }
  
  struct smp_operations armada_xp_smp_ops __initdata = {
This page took 0.031832 seconds and 5 git commands to generate.