summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorQuinn Jensen <quinn.jensen@freescale.com>2007-05-24 18:23:44 -0600
committerQuinn Jensen <quinn.jensen@freescale.com>2007-05-24 18:23:44 -0600
commit5d8e701238c30a8b2df8bc5b116fad8a41a3e89c (patch)
treef96c34e145e7bd1f3cd147996d57cfa3c6ac2837 /arch
parent26e4293d9a31fc36ffcbf68118bb50e1251fa527 (diff)
Bugzilla 563: MX31 register swizzle work-around
A problem has been discovered with MX31-TO2 silicon where a general register is loaded with an address constant from a PC-relative location. Upon going indirect through this register, the address value contained in the register will have been rotated right by 8 bits, causing a memory fault. At present the cause of the rotation is not known. This patch implements a work around to this problem, although why it works is still unknown. http://www.bitshrine.org/gpp/linux-2.6.19.2-mx31_TO2_reg_swizzle_workaround.patch
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/plat-mxc/Kconfig14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/arm/plat-mxc/Kconfig b/arch/arm/plat-mxc/Kconfig
index d6f061142717..fd4f53228a38 100644
--- a/arch/arm/plat-mxc/Kconfig
+++ b/arch/arm/plat-mxc/Kconfig
@@ -11,6 +11,20 @@ config ARCH_MX3
help
This enables support for systems based on Freescale i.MX31
+config MX31_TO2_REG_SWIZZLE_WORKAROUND
+ bool "MX31-TO2 Register Swizzle Workaround"
+ depends on ARCH_MX3
+ help
+ This option attempts to work around a problem discovered with
+ MX31-TO2 silicon where a general register is loaded with an
+ address constant from a PC-relative location. Upon going
+ indirect through this register, the address value contained
+ in the register will have been rotated right by 8 bits, causing
+ a memory fault. The cause of the rotation is not known, nor is
+ the reason why this work around seems to make the problem go
+ away. If you are using MX31-TO2 silicon and are faulting on
+ rotated addresses, enable this option.
+
config ARCH_MX27
bool "MX27-based"
select MXC_EMMA