exynos: allow SPL to build in thumb mode
authorGuillaume GARDET <guillaume.gardet@free.fr>
Wed, 2 Jan 2019 13:31:41 +0000 (14:31 +0100)
committerMinkyu Kang <mk7.kang@samsung.com>
Thu, 3 Jan 2019 00:37:18 +0000 (09:37 +0900)
Building peach-pi smdk5420 and peach-pit with thumb mode for SPL
ends-up in the following error:

Error: Thumb encoding does not support an immediate here -- `msr cpsr_c,#0x13|0xC0'

Use an intermediate register to be able to use thumb for exynos5 SPL.

Signed-off-by: Guillaume GARDET <guillaume.gardet@free.fr>
Cc: Albert Aribaud <albert.u.boot@aribaud.net>
Cc: Minkyu Kang <mk7.kang@samsung.com>
Cc: Tom Rini <trini@konsulko.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
arch/arm/mach-exynos/include/mach/system.h

index 48377819573f6d6226831970bae610901747d45a..81fa9800b41d595c9c56799c34ef00df11006464 100644 (file)
@@ -58,7 +58,8 @@ struct exynos5_sysreg {
 /* Move 0xd3 value to CPSR register to enable SVC mode */
 #define svc32_mode_en() __asm__ __volatile__                           \
                        ("@ I&F disable, Mode: 0x13 - SVC\n\t"          \
-                        "msr     cpsr_c, #0x13|0xC0\n\t" : : )
+                        "mov     r0, #0x13|0xC0\n\t"                   \
+                        "msr     cpsr_c, r0\n\t" : : )
 
 /* Set program counter with the given value */
 #define set_pc(x) __asm__ __volatile__ ("mov     pc, %0\n\t" : : "r"(x))