arm: omap3: Directly use SMC #1 in lowlevel_init.S
authorPali Rohár <pali@kernel.org>
Thu, 13 Apr 2023 20:34:43 +0000 (22:34 +0200)
committerTom Rini <trini@konsulko.com>
Tue, 25 Apr 2023 19:31:28 +0000 (15:31 -0400)
Since commit de39dc71625d ("arm: armv7-a: Compile and tune for armv7-a
instead of armv5") is used -march=armv7-a option for Omap3 platforms.

With directive ".arch_extension sec" it is possible for -march=armv7-a to
directly use ARM SMC instruction.

So enable ".arch_extension sec" in Omap3 lowlevel_init.S and replace hand
assembled ".word 0xe1600071" by "SMC #1".

Since commit 51d063865064 ("arm: omap-common: add secure smc entry") same
pattern is already used in arch/arm/cpu/armv7/omap-common/lowlevel_init.S.

Signed-off-by: Pali Rohár <pali@kernel.org>
arch/arm/mach-omap2/omap3/lowlevel_init.S

index ab7cdcf..1ab9472 100644 (file)
 #include <asm/arch/clocks_omap3.h>
 #include <linux/linkage.h>
 
+.arch_extension sec
+
 /*
  * Funtion for making PPA HAL API calls in secure devices
  * Input:
  *     R0 - Service ID
  *     R1 - paramer list
  */
-/* TODO: Re-evaluate the comment at the end regarding armv5 vs armv7 */
 ENTRY(do_omap3_emu_romcode_call)
        PUSH {r4-r12, lr} @ Save all registers from ROM code!
        MOV r12, r0     @ Copy the Secure Service ID in R12
@@ -32,8 +33,7 @@ ENTRY(do_omap3_emu_romcode_call)
        MOV r6, #0xFF   @ Indicate new Task call
        mcr     p15, 0, r0, c7, c10, 4  @ DSB
        mcr     p15, 0, r0, c7, c10, 5  @ DMB
-       .word   0xe1600071      @ SMC #1 to call PPA service - hand assembled
-                               @ because we use -march=armv5
+       SMC     #1      @ Call PPA service
        POP {r4-r12, pc}
 ENDPROC(do_omap3_emu_romcode_call)