diff options
author | Lucas Stach <l.stach@pengutronix.de> | 2015-10-12 15:54:52 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2015-10-13 10:44:55 +0200 |
commit | 611e86d58154752fd1fd0051b6e5dec325329dbe (patch) | |
tree | a9fe09461c9f3d115e27381a6d3740b3de99619b /arch/arm/mach-imx/imx6.c | |
parent | 95dfa1a847756252c74019e244f308af2bb9779d (diff) | |
download | barebox-611e86d58154752fd1fd0051b6e5dec325329dbe.tar.gz barebox-611e86d58154752fd1fd0051b6e5dec325329dbe.tar.xz |
ARM: imx6: set shared attribute override bit in PL310
In order to make the system compliant to the ARMv7 ARM RevC clarifications
regarding conflicting memory aliases the shared override bit needs to be
set. This needs to be done in the bootloader, as the kernel will not apply
any modifications to the AUX_CTRL register by default, as it is a secure only
register.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-imx/imx6.c')
-rw-r--r-- | arch/arm/mach-imx/imx6.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/imx6.c b/arch/arm/mach-imx/imx6.c index 509ac84602..c49de49209 100644 --- a/arch/arm/mach-imx/imx6.c +++ b/arch/arm/mach-imx/imx6.c @@ -222,6 +222,17 @@ static int imx6_mmu_init(void) writel(val, l2x0_base + L2X0_PREFETCH_CTRL); + /* + * Set shared attribute override bit in AUX_CTRL register, this is done + * here as it must be done regardless of the usage of the L2 cache in + * barebox itself. The kernel will not touch this bit, but it must be + * set to make the system compliant to the ARMv7 ARM RevC clarifications + * regarding conflicting memory aliases. + */ + val = readl(l2x0_base + L2X0_AUX_CTRL); + val |= (1 << 22); + writel(val, l2x0_base + L2X0_AUX_CTRL); + l2x0_init(l2x0_base, 0x0, ~0UL); return 0; |