aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/omap44xx-smc.S
diff options
context:
space:
mode:
authorSantosh Shilimkar <santosh.shilimkar@ti.com>2010-03-11 07:33:46 +0000
committerTony Lindgren <tony@atomide.com>2010-03-11 09:38:53 -0800
commitd660f9a26ef81c3bbced92514ffbe82e1b882ee1 (patch)
tree17997ef37df0ff3a0274b705d5d079531bc601d0 /arch/arm/mach-omap2/omap44xx-smc.S
parentomap2/3/4: ehci: avoid compiler error with touchbook (diff)
downloadlinux-dev-d660f9a26ef81c3bbced92514ffbe82e1b882ee1.tar.xz
linux-dev-d660f9a26ef81c3bbced92514ffbe82e1b882ee1.zip
omap4: Fix build break by moving omap_smc1 into a separate .S
This patch moves omap_smc1 function to a seperate omap44xx-smc.S file and sets compile flags as -Wa,-march=armv7-a. This fix was suggested by Tony Lindgren <tony@atomide.com> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com> [tony@atomide.com: otherwise multi-omap build with V6 and V7 breaks] Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap2/omap44xx-smc.S')
-rw-r--r--arch/arm/mach-omap2/omap44xx-smc.S32
1 files changed, 32 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/omap44xx-smc.S b/arch/arm/mach-omap2/omap44xx-smc.S
new file mode 100644
index 000000000000..89bb2b141473
--- /dev/null
+++ b/arch/arm/mach-omap2/omap44xx-smc.S
@@ -0,0 +1,32 @@
+/*
+ * OMAP44xx secure APIs file.
+ *
+ * Copyright (C) 2010 Texas Instruments, Inc.
+ * Written by Santosh Shilimkar <santosh.shilimkar@ti.com>
+ *
+ *
+ * This program is free software,you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/linkage.h>
+
+/*
+ * This is common routine to manage secure monitor API
+ * used to modify the PL310 secure registers.
+ * 'r0' contains the value to be modified and 'r12' contains
+ * the monitor API number. It uses few CPU registers
+ * internally and hence they need be backed up including
+ * link register "lr".
+ * Function signature : void omap_smc1(u32 fn, u32 arg)
+ */
+
+ENTRY(omap_smc1)
+ stmfd sp!, {r2-r12, lr}
+ mov r12, r0
+ mov r0, r1
+ dsb
+ smc
+ ldmfd sp!, {r2-r12, pc}
+END(omap_smc1)