diff options
author | Santosh Shilimkar <santosh.shilimkar@ti.com> | 2013-06-21 18:54:47 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2013-06-24 16:23:36 +0200 |
commit | 3aae7ab0f15d69166789cf84aea39e6b438c4c26 (patch) | |
tree | 79326b144c155370799c3bbffb2f60c9b33f374c /arch/arm/mach-keystone/smc.S | |
parent | 24e860fbfdb1c3f97d17d3578a146f3b42b9ad83 (diff) | |
download | talos-obmc-linux-3aae7ab0f15d69166789cf84aea39e6b438c4c26.tar.gz talos-obmc-linux-3aae7ab0f15d69166789cf84aea39e6b438c4c26.zip |
ARM: keystone: Move CPU bringup code to dedicated asm file
Because of inline asm usage in platsmp.c, smc instruction
creates build failure for ARM V6+V7 build where as using instruction
encoding for smc breaks the thumb2 build.
So move the code snippet to separate asm file and mark
it with 'armv7-a$(plus_sec)' to avoid any build issues.
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/arm/mach-keystone/smc.S')
-rw-r--r-- | arch/arm/mach-keystone/smc.S | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/arch/arm/mach-keystone/smc.S b/arch/arm/mach-keystone/smc.S new file mode 100644 index 000000000000..9b9e4f7b241e --- /dev/null +++ b/arch/arm/mach-keystone/smc.S @@ -0,0 +1,29 @@ +/* + * Keystone Secure APIs + * + * Copyright (C) 2013 Texas Instruments, Inc. + * 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> + +/** + * u32 keystone_cpu_smc(u32 command, u32 cpu, u32 addr) + * + * Low level CPU monitor API + * @command: Monitor command. + * @cpu: CPU Number + * @addr: Kernel jump address for boot CPU + * + * Return: Non zero value on failure + */ +ENTRY(keystone_cpu_smc) + stmfd sp!, {r4-r12, lr} + smc #0 + dsb + ldmfd sp!, {r4-r12, pc} +ENDPROC(keystone_cpu_smc) |