summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-mvebu/pmsu.h
diff options
context:
space:
mode:
authorGregory CLEMENT <gregory.clement@free-electrons.com>2014-07-23 15:00:40 +0200
committerJason Cooper <jason@lakedaemon.net>2014-07-24 13:46:06 +0200
commit3076cc58c958090ad50acf50fc855845e3462523 (patch)
tree505107f431ba034ff26deaf369ef75744c8dd533 /arch/arm/mach-mvebu/pmsu.h
parentARM: mvebu: sort the #include of pmsu.c in alphabetic order (diff)
downloadlinux-3076cc58c958090ad50acf50fc855845e3462523.tar.xz
linux-3076cc58c958090ad50acf50fc855845e3462523.zip
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>
Diffstat (limited to 'arch/arm/mach-mvebu/pmsu.h')
-rw-r--r--arch/arm/mach-mvebu/pmsu.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/mach-mvebu/pmsu.h b/arch/arm/mach-mvebu/pmsu.h
index 07a737c6b95d..ae501948ec73 100644
--- a/arch/arm/mach-mvebu/pmsu.h
+++ b/arch/arm/mach-mvebu/pmsu.h
@@ -12,5 +12,8 @@
#define __MACH_MVEBU_PMSU_H
int armada_xp_boot_cpu(unsigned int cpu_id, void *phys_addr);
+int mvebu_setup_boot_addr_wa(unsigned int crypto_eng_target,
+ unsigned int crypto_eng_attribute,
+ phys_addr_t resume_addr_reg);
#endif /* __MACH_370_XP_PMSU_H */