coreboot/src
Julius Werner cbc96db296 armv7: Change all memory domains to Client so XN bits work
Remember the XN bit? The one we had so much fun with on Nyan (LPAE)
because not setting it allows random instruction prefetches to device
memory that hang the system every few thousand boots? Thankfully, we had
always been setting it in the non-LPAE MMU code already...

"When the XN bit is 1, a Permission fault is generated if the processor
attempts to execute an instruction fetched from the corresponding memory
region. However, when using the Short-descriptor translation table
format, the fault is generated only if the access is to memory in the
Client domain, see Domains[...]" - ARM A.R.M. section B3.7.2

Oops. This patch changes our Domain Access Control Register (DACR) to
set domain 0 (the only one we are using) to Client. This means that
access permissions (AP[2:0] bits) become enforced, but they are already
set to full access (0b011). It also means that non-LPAE systems will not
be allowed to execute from DCACHE_OFF memory with enabled MMU anymore.
As far as I can see, Veyron_Pinky has been the only board that does
that.

BUG=chrome-os-partner:32118
TEST=Booted Veyron_Pinky with MMU in the bootblock, saw hangs that look
like spurious prefetches and confirmed that this patch fixes them.

Change-Id: I30676a5bfe12d516e5f910f51ee6854f6e5be557
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/223783
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
2014-10-17 21:54:42 +00:00
..
arch armv7: Change all memory domains to Client so XN bits work 2014-10-17 21:54:42 +00:00
console console: add configs to support Marvell bg4cd uart 2014-10-17 03:24:42 +00:00
cpu New mechanism to define SRAM/memory map with automatic bounds checking 2014-10-03 09:09:36 +00:00
device PCIe: Add L1 Sub-State support. 2014-10-10 04:36:50 +00:00
drivers verstage should include the CBFS SPI wrapper, when configured 2014-10-17 03:25:20 +00:00
ec chromeec: Add wakeup delay after SPI /CS assertion 2014-10-01 06:53:27 +00:00
include armv7: Add fine-grained page table support 2014-10-17 21:54:05 +00:00
lib verstage should include the CBFS SPI wrapper, when configured 2014-10-17 03:25:20 +00:00
mainboard rk3288: Add early SRAM mapping 2014-10-17 21:54:36 +00:00
northbridge Makefile: Preprocess linker scripts and other general improvements 2014-10-02 07:02:10 +00:00
soc rk3288: Add early SRAM mapping 2014-10-17 21:54:36 +00:00
southbridge Makefile: Preprocess linker scripts and other general improvements 2014-10-02 07:02:10 +00:00
superio superio: ite8772f: Exit extemp busy state 2014-09-27 07:09:25 +00:00
vendorcode cbfs: Enforce media->map() result checking, improve error messages 2014-10-14 23:59:08 +00:00
Kconfig Clean up architecture-specific Kconfigs 2014-10-02 07:02:16 +00:00