From 6fb87f7371a240763efbf33a33ad4403914d11e3 Mon Sep 17 00:00:00 2001 From: Ian Lepore Date: Sun, 31 Mar 2013 22:43:16 +0000 Subject: [PATCH] When running on armv6, set alignment checking to modulo-4 mode rather than modulo-8, because clang emits ldrd and strd instructions for addresses that are only 4-byte aligned --- sys/boot/arm/uboot/start.S | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys/boot/arm/uboot/start.S b/sys/boot/arm/uboot/start.S index 65148c9c9777..8af47f3afc06 100644 --- a/sys/boot/arm/uboot/start.S +++ b/sys/boot/arm/uboot/start.S @@ -27,6 +27,7 @@ */ #include +#include /* * Entry point to the loader that U-Boot passes control to. @@ -42,6 +43,13 @@ _start: ldr ip, =saved_regs str r8, [ip, #0] +#ifdef _ARM_ARCH_6 + mrc p15, 0, r2, c1, c0, 0 + orr r2, r2, #(CPU_CONTROL_UNAL_ENABLE) + orr r2, r2, #(CPU_CONTROL_AFLT_ENABLE) + mcr p15, 0, r2, c1, c0, 0 +#endif + /* Start loader */ b main