ARM: msm: fix compilation flags for MSM_SCM
authorMarc Zyngier <marc.zyngier@arm.com>
Tue, 8 Nov 2011 13:07:36 +0000 (13:07 +0000)
committerDavid Brown <davidb@codeaurora.org>
Tue, 8 Nov 2011 16:58:28 +0000 (08:58 -0800)
CONFIG_MSM_SCM uses the smc instruction, which with some
toolchains requires a ".arch_extension" directive.

Cc: David Brown <davidb@codeaurora.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: David Brown <davidb@codeaurora.org>
arch/arm/mach-msm/Makefile
arch/arm/mach-msm/scm.c

index 4285dfd80b6ff30d36eaa378699dc709670e0e8f..4ad3969b98817cc42446d22476aae2ce5771efc6 100644 (file)
@@ -15,6 +15,8 @@ obj-$(CONFIG_MSM_SMD) += smd.o smd_debug.o
 obj-$(CONFIG_MSM_SMD) += last_radio_log.o
 obj-$(CONFIG_MSM_SCM) += scm.o scm-boot.o
 
+CFLAGS_scm.o :=$(call as-instr,.arch_extension sec,-DREQUIRES_SEC=1)
+
 obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
 obj-$(CONFIG_SMP) += headsmp.o platsmp.o
 
index 232f97a045041cdd98e53e9f04dc6c2aaebc7f36..bafabb502580e87cd4473e2261582bd796404897 100644 (file)
@@ -180,6 +180,9 @@ static u32 smc(u32 cmd_addr)
                        __asmeq("%1", "r0")
                        __asmeq("%2", "r1")
                        __asmeq("%3", "r2")
+#ifdef REQUIRES_SEC
+                       ".arch_extension sec\n"
+#endif
                        "smc    #0      @ switch to secure world\n"
                        : "=r" (r0)
                        : "r" (r0), "r" (r1), "r" (r2)