summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorPaul Burton <paul.burton@imgtec.com>2016-09-21 10:18:57 (GMT)
committerDaniel Schwierzeck <daniel.schwierzeck@gmail.com>2016-09-21 13:04:04 (GMT)
commitc5b8412d60e22b49348a63848cbf7b6ab5ccb16e (patch)
treed5d8f1617c60ce1f6da776e871943c36cadd7043 /arch
parent566ce04de4a2b4c66be8e13751dbb0bfe80117b3 (diff)
downloadu-boot-c5b8412d60e22b49348a63848cbf7b6ab5ccb16e.tar.xz
MIPS: Ensure Config.K0=2 applies before any memory accesses
During boot we set Config.K0=2 (uncached) such that any accesses to the kseg0 memory region are performed uncached before the caches are initialised. This write to the Config register introduces an execution hazard between it & any following memory accesses (such as the load of _gp), which we need to clear in order to ensure those memory accesses are actually performed uncached. Clear this execution hazard with the insertion of an ehb execution hazard barrier instruction. Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/mips/cpu/start.S1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/mips/cpu/start.S b/arch/mips/cpu/start.S
index c157d03..8f85ede 100644
--- a/arch/mips/cpu/start.S
+++ b/arch/mips/cpu/start.S
@@ -127,6 +127,7 @@ reset:
and t0, t0, MIPS_CONF_IMPL
or t0, t0, CONF_CM_UNCACHED
mtc0 t0, CP0_CONFIG
+ ehb
#endif
/*