diff options
author | Rob Herring <rob.herring@calxeda.com> | 2012-04-26 11:40:26 -0500 |
---|---|---|
committer | Tim Gardner <tim.gardner@canonical.com> | 2012-05-31 07:11:28 -0600 |
commit | e079156b143970d1494ff573d9210a845a9b911c (patch) | |
tree | ed56896aeb083ea3cdf6d39f46f3c289f16181dd /arch/arm/mach-highbank/smc.S | |
parent | 087103062e8c180ccdd00342b3e33412fa7dfa12 (diff) |
UBUNTU: SAUCE: ARM: highbank: Add smc calls to enable/disable the L2
BugLink: http://bugs.launchpad.net/bugs/1000831
Linux runs in non-secure mode on highbank, so we need secure monitor calls
to enable and disable the PL310.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Signed-off-by: Ike Panhc <ike.pan@canonical.com>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
Diffstat (limited to 'arch/arm/mach-highbank/smc.S')
-rw-r--r-- | arch/arm/mach-highbank/smc.S | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/arch/arm/mach-highbank/smc.S b/arch/arm/mach-highbank/smc.S new file mode 100644 index 00000000000..8b116325c8c --- /dev/null +++ b/arch/arm/mach-highbank/smc.S @@ -0,0 +1,31 @@ +/* + * Copied from omap44xx-smc.S + * 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(highbank_smc1) + stmfd sp!, {r2-r12, lr} + mov r12, r0 + mov r0, r1 + dsb + smc #0 + ldmfd sp!, {r2-r12, pc} +ENDPROC(highbank_smc1) |