coreboot/src
Julius Werner e7b079f4b6 rk3288: Add early SRAM mapping
Solving the DACR bug will mean that XN bits suddenly become enforced on
non-LPAE systems, and we will no longer be able to execute out of a
region mapped DCACHE_OFF. When we enable the MMU in romstage we are
still executing out of SRAM, so we would instantly kill ourselves.

Solve this issue by enabling the MMU earlier (in the bootblock) and
mapping the SRAM regions as DCACHE_WRITETHROUGH. They should really be
DCACHE_WRITEBACK, but it looks like there might be hardware limitations
in the Cortex-A12 cache architecture that prevent us from doing so.
Write-through mappings are equivalent to normal non-cacheable on the A12
anyway, and by using this attribute we don't need to introduce a new
DCACHE_OFF_BUT_WITHOUT_XN_BIT type in our API. (Also, using normal
non-cacheable might still have a slight speed advantage over strongly
ordered since it should fetch whole cache lines at once if the processor
finds enough accesses it can combine.)

CQ-DEPEND=CL:223783
BUG=chrome-os-partner:32118
TEST=None (depends on follow-up CL)

Change-Id: I53e827d95acc2db909f1251de78d65e295eceaa7
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/223782
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
2014-10-17 21:54:36 +00:00
..
arch armv7: Add fine-grained page table support 2014-10-17 21:54:05 +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