summaryrefslogtreecommitdiffstats
path: root/board
diff options
context:
space:
mode:
Diffstat (limited to 'board')
-rw-r--r--board/pcm043/lowlevel_init.S9
1 files changed, 9 insertions, 0 deletions
diff --git a/board/pcm043/lowlevel_init.S b/board/pcm043/lowlevel_init.S
index b176432dc0..6f64ecfbb0 100644
--- a/board/pcm043/lowlevel_init.S
+++ b/board/pcm043/lowlevel_init.S
@@ -63,6 +63,7 @@ board_init_lowlevel:
mrc 15, 0, r0, c1, c0, 1
orr r0, r0, #7
+// orr r0, r0, #(1 << 31) /* disable hit under miss (Errata 364296) */
mcr 15, 0, r0, c1, c0, 1
orr r1, r1, #(1<<11) /* Flow prediction (Z) */
@@ -74,6 +75,14 @@ board_init_lowlevel:
mov r0, #0
mcr 15, 0, r0, c15, c2, 4
+ /*
+ * Branch predicition is now enabled. Flush the BTAC to ensure a valid
+ * starting point. Don't flush BTAC while it is disabled to avoid
+ * ARM1136 erratum 408023.
+ */
+ mov r0, #0
+ mcr p15, 0, r0, c7, c5, 6 /* flush entire BTAC */
+
mov r0, #0
mcr 15, 0, r0, c7, c7, 0 /* invalidate I cache and D cache */
mcr 15, 0, r0, c8, c7, 0 /* invalidate TLBs */