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>tirimbino
parent
24e860fbfd
commit
3aae7ab0f1
@ -1,2 +1,6 @@ |
||||
obj-y := keystone.o
|
||||
obj-y := keystone.o smc.o
|
||||
|
||||
plus_sec := $(call as-instr,.arch_extension sec,+sec)
|
||||
AFLAGS_smc.o :=-Wa,-march=armv7-a$(plus_sec)
|
||||
|
||||
obj-$(CONFIG_SMP) += platsmp.o
|
||||
|
@ -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) |
Loading…
Reference in new issue