summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2012-12-08 17:49:52 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2012-12-08 17:50:03 +0100
commitab4e9edf86661635ab8f0aff14b178125bf80531 (patch)
treef6739c2afbd6352daad62d2fb4dbccaafc5dacc1
parent8030ab24fa042a356b958dd1ccf0338b0d2c8418 (diff)
downloadbarebox-ab4e9edf86661635ab8f0aff14b178125bf80531.tar.gz
barebox-ab4e9edf86661635ab8f0aff14b178125bf80531.tar.xz
ARM startup: Ensure CR_A flag is cleared on architectures >= ARMv6
We allow unaligned accesses on ARMv6 onwards, make sure the CR_A flag is cleared so that unaligned accesses do not trap. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--arch/arm/include/asm/barebox-arm-head.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm/include/asm/barebox-arm-head.h b/arch/arm/include/asm/barebox-arm-head.h
index eafad4e311..bf00ff0c35 100644
--- a/arch/arm/include/asm/barebox-arm-head.h
+++ b/arch/arm/include/asm/barebox-arm-head.h
@@ -22,6 +22,7 @@ static inline void common_reset(void)
#if __LINUX_ARM_ARCH__ >= 6
r |= CR_U;
+ r &= CR_A;
#else
r |= CR_A;
#endif
@@ -91,6 +92,7 @@ static inline void barebox_arm_head(void)
#if __LINUX_ARM_ARCH__ >= 6
orr \scratch, \scratch, #CR_U
+ bic \scratch, \scratch, #CR_A
#else
orr \scratch, \scratch, #CR_A
#endif