u-boot-brain/arch
Fabio Estevam b4ed9f86df mx6: Set shared override bit in PL310 AUX_CTRL register
Having bit 22 cleared in the PL310 Auxiliary Control register (shared
attribute override enable) has the side effect of transforming Normal
Shared Non-cacheable reads into Cacheable no-allocate reads.

Coherent DMA buffers in Linux always have a Cacheable alias via the
kernel linear mapping and the processor can speculatively load cache
lines into the PL310 controller. With bit 22 cleared, Non-cacheable
reads would unexpectedly hit such cache lines leading to buffer
corruption.

This was inspired by a patch from Catalin Marinas [1] and also from recent
discussions in the linux-arm-kernel list [2] where Russell King and Rob Herring
suggested that bootloaders should initialize the cache.

[1] http://lists.infradead.org/pipermail/linux-arm-kernel/2010-November/031810.html
[2] https://lkml.org/lkml/2015/2/20/199

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
2015-05-15 19:21:24 +02:00
..
arc arc: remove dummy target 2015-05-13 19:20:35 +03:00
arm mx6: Set shared override bit in PL310 AUX_CTRL register 2015-05-15 19:21:24 +02:00
avr32 arch: Make board selection choices optional 2015-05-12 18:10:02 -04:00
blackfin arch: Make board selection choices optional 2015-05-12 18:10:02 -04:00
m68k arch: Make board selection choices optional 2015-05-12 18:10:02 -04:00
microblaze arch: Make board selection choices optional 2015-05-12 18:10:02 -04:00
mips arch: Make board selection choices optional 2015-05-12 18:10:02 -04:00
nds32 arch: Make board selection choices optional 2015-05-12 18:10:02 -04:00
nios2 arch: Make board selection choices optional 2015-05-12 18:10:02 -04:00
openrisc arch: Make board selection choices optional 2015-05-12 18:10:02 -04:00
powerpc arch: Make board selection choices optional 2015-05-12 18:10:02 -04:00
sandbox sandbox: dts: add sandbox_pmic.dtsi and include it to sandbox.dts and test.dts 2015-05-14 19:59:21 -06:00
sh arch: Make board selection choices optional 2015-05-12 18:10:02 -04:00
sparc arch: Make board selection choices optional 2015-05-12 18:10:02 -04:00
x86 x86: Enable multi-core init for Minnowboard MAX 2015-04-30 16:13:52 -06:00
.gitignore .gitignore: drop include/asm/proc from ignore pattern 2014-06-19 11:18:54 -04:00
Kconfig x86: Kconfig: Move DM_SPI & DM_SPI_FLASH to arch/Kconfig 2015-04-29 18:51:50 -06:00