summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/sleep.h
diff options
context:
space:
mode:
authorScott Williams <scwilliams@nvidia.com>2012-02-03 11:00:50 -0800
committerVarun Wadekar <vwadekar@nvidia.com>2012-06-25 15:30:13 +0530
commit61dad3377a86b0711073637ef3c0fcd95f44a3de (patch)
tree46f8b4a856d63a89b4b2cde36c02672b53a049e7 /arch/arm/mach-tegra/sleep.h
parent2995e97b2256f32438545f8f0e37415d83820496 (diff)
ARM: tegra: smp: Add support for Cortex-A15 boot_secondary
Cortex-A15 does not have a memory-mapped SCU in the PERIPHBASE aperture. Instead, the number of CPUs present is obtained from the architectural L2 Cache Control (L2CTLR) register. Enable HAVE_ARM_SCU only on platforms that have a memory-mapped SCU and add the necessary conditionals to prevent access to the memory-mapped SCU address range on platforms that don't. Change-Id: I4027d034fe79339fab0030a44780240785206cba Signed-off-by: Scott Williams <scwilliams@nvidia.com> Reviewed-on: http://git-master/r/79341 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Mark Stadler <mastadler@nvidia.com> Reviewed-by: Jeff Smith <jsmith@nvidia.com> Reviewed-by: Bo Yan <byan@nvidia.com> Reviewed-by: Aleksandr Frid <afrid@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/sleep.h')
-rw-r--r--arch/arm/mach-tegra/sleep.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/sleep.h b/arch/arm/mach-tegra/sleep.h
index 00bf616b4a88..a2f4712de3b0 100644
--- a/arch/arm/mach-tegra/sleep.h
+++ b/arch/arm/mach-tegra/sleep.h
@@ -85,8 +85,10 @@
#ifdef CONFIG_CACHE_L2X0
#define TEGRA_PL310_VIRT (TEGRA_ARM_PL310_BASE - IO_CPU_PHYS + IO_CPU_VIRT)
#endif
-#define TEGRA_FLOW_CTRL_VIRT (TEGRA_FLOW_CTRL_BASE - IO_PPSB_PHYS + IO_PPSB_VIRT)
+#ifdef CONFIG_HAVE_ARM_SCU
#define TEGRA_ARM_PERIF_VIRT (TEGRA_ARM_PERIF_BASE - IO_CPU_PHYS + IO_CPU_VIRT)
+#endif
+#define TEGRA_FLOW_CTRL_VIRT (TEGRA_FLOW_CTRL_BASE - IO_PPSB_PHYS + IO_PPSB_VIRT)
#ifdef __ASSEMBLY__
@@ -96,6 +98,7 @@
bic \tmp1, \tmp1, #(1<<6) | (1<<0) @ clear ACTLR.SMP | ACTLR.FW
mcr p15, 0, \tmp1, c1, c0, 1 @ ACTLR
isb
+#ifdef CONFIG_HAVE_ARM_SCU
cpu_id \tmp1
mov \tmp1, \tmp1, lsl #2
mov \tmp2, #0xf
@@ -103,6 +106,7 @@
mov32 \tmp1, TEGRA_ARM_PERIF_VIRT + 0xC
str \tmp2, [\tmp1] @ invalidate SCU tags for CPU
dsb
+#endif
.endm
#define DEBUG_CONTEXT_STACK 0