
On May 31, 2017, at 12:27 AM, Phil Edworthy phil.edworthy@renesas.com wrote:
The branch instruction only has an 11-bit relative target address, which is sometimes not enough.
Signed-off-by: Phil Edworthy phil.edworthy@renesas.com
Reviewed-by: Vikas Manocha vikas.manocha@st.com
Cheers, Vikas
v2:
- Use W(b) instead of ldr+mov. Using this macro requires CONFIG_ARM_ASM_UNIFIED and CONFIG_THUMB2_KERNEL to be defined.
arch/arm/cpu/armv7m/Makefile | 3 +++ arch/arm/cpu/armv7m/start.S | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/arch/arm/cpu/armv7m/Makefile b/arch/arm/cpu/armv7m/Makefile index 257fc7f..df1fc95 100644 --- a/arch/arm/cpu/armv7m/Makefile +++ b/arch/arm/cpu/armv7m/Makefile @@ -8,3 +8,6 @@ extra-y := start.o obj-y += cpu.o cache.o mpu.o obj-$(CONFIG_SYS_ARCH_TIMER) += systick-timer.o
+asflags-y += -DCONFIG_ARM_ASM_UNIFIED +asflags-y += -DCONFIG_THUMB2_KERNEL diff --git a/arch/arm/cpu/armv7m/start.S b/arch/arm/cpu/armv7m/start.S index 49f2720..890c773 100644 --- a/arch/arm/cpu/armv7m/start.S +++ b/arch/arm/cpu/armv7m/start.S @@ -5,10 +5,12 @@
- SPDX-License-Identifier: GPL-2.0+
*/
+#include <asm/assembler.h>
.globl reset .type reset, %function reset:
- b _main
- W(b) _main
.globl c_runtime_cpu_setup c_runtime_cpu_setup: -- 2.7.4