linux/arch/arm/mach-mvebu
Gregory CLEMENT 3076cc58c9 ARM: mvebu: add a common function for the boot address work around
On some of the mvebu SoCs and due to internal BootROM issue, the CPU
initial jump code must be placed in the SRAM memory of the SoC. In
order to achieve this, we have to unmap the BootROM and at some
specific location where the BootROM was placed, create a dedicated
MBus window for the SRAM. This SRAM is initialized with a few
instructions of code that allows to jump to the real secondary CPU
boot address. The SRAM used is the Crypto engine one.

This work around is currently needed for booting SMP on Armada 375 Z1
and will be needed for cpuidle support on Armada 370. Instead of
duplicating the same code, this commit introduces a common function to
handle it: mvebu_setup_boot_addr_wa().

Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Link: https://lkml.kernel.org/r/1406120453-29291-4-git-send-email-thomas.petazzoni@free-electrons.com
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2014-07-24 11:46:06 +00:00
..
include/mach ARM: mvebu: Simplify headers and make local 2014-02-22 21:19:59 +00:00
armada-370-xp.h ARM: mvebu: export PMSU idle enter/exit functions 2014-06-21 00:31:38 +00:00
board-v7.c Merge branch 'mvebu/fixes' into mvebu/soc-cpuidle 2014-07-24 11:41:36 +00:00
board.h ARM: Kirkwood: Add setup file for netxbig LEDs 2014-06-20 23:47:27 +00:00
coherency_ll.S ARM: mvebu: returns ll_get_cpuid() to ll_get_coherency_cpumask() 2014-05-22 14:26:30 +00:00
coherency.c ARM: mvebu: Fix coherency bus notifiers by using separate notifiers 2014-07-08 13:53:53 +00:00
coherency.h ARM: mvebu: Remove the unused argument of set_cpu_coherent() 2014-05-08 16:18:52 +00:00
common.h ARM: mvebu: Use system controller to get the soc id when possible 2014-06-30 17:40:59 +00:00
cpu-reset.c ARM: mvebu: Staticize mvebu_cpu_reset_init 2014-06-30 17:41:04 +00:00
dove.c bus: mvebu: pass the coherency availability information at init time 2014-04-24 05:00:36 +00:00
headsmp-a9.S ARM: mvebu: fix SMP boot for Armada 38x and Armada 375 Z1 in big endian 2014-07-01 17:02:26 +00:00
headsmp.S ARM: mvebu: Split low level functions to manipulate HW coherency 2014-05-08 16:18:54 +00:00
Kconfig Merge branch 'mvebu/fixes' into mvebu/soc-cpuidle 2014-07-24 11:41:36 +00:00
kirkwood-pm.c ARM: mvebu: Simplify headers and make local 2014-02-22 21:19:59 +00:00
kirkwood-pm.h ARM: mvebu: Move kirkwood DT boards into mach-mvebu 2014-02-22 21:19:55 +00:00
kirkwood.c ARM: Kirkwood: Add setup file for netxbig LEDs 2014-06-20 23:47:27 +00:00
kirkwood.h ARM: mvebu: Simplify headers and make local 2014-02-22 21:19:59 +00:00
Makefile Merge branch 'mvebu/fixes' into mvebu/soc-cpuidle 2014-07-24 11:41:36 +00:00
mvebu-soc-id.c ARM: mvebu: Use system controller to get the soc id when possible 2014-06-30 17:40:59 +00:00
mvebu-soc-id.h ARM: mvebu: add Armada 375 A0 revision definition 2014-05-08 16:40:14 +00:00
netxbig.c ARM: Kirkwood: Add setup file for netxbig LEDs 2014-06-20 23:47:27 +00:00
platsmp-a9.c ARM: mvebu: Staticize armada_375_smp_cpu1_enable_wa 2014-06-30 17:41:01 +00:00
platsmp.c ARM: mvebu: implement CPU hotplug support for Armada XP 2014-06-21 00:31:47 +00:00
pmsu_ll.S ARM: mvebu: add a common function for the boot address work around 2014-07-24 11:46:06 +00:00
pmsu.c ARM: mvebu: add a common function for the boot address work around 2014-07-24 11:46:06 +00:00
pmsu.h ARM: mvebu: add a common function for the boot address work around 2014-07-24 11:46:06 +00:00
system-controller.c ARM: mvebu: Use system controller to get the soc id when possible 2014-06-30 17:40:59 +00:00