summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start.S
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start.S')
-rw-r--r--c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start.S12
1 files changed, 10 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start.S b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start.S
index 77c9d845a6..e8ae3c0db4 100644
--- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start.S
+++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start.S
@@ -170,9 +170,17 @@ _start:
ori r3, r3, 0x4000
mtspr HID0, r3
- /* Enable branch prediction */
- LWI r3, FSL_EIS_BUCSR_BBFI | FSL_EIS_BUCSR_BPEN
+ /*
+ * Enable branch prediction.
+ *
+ * Errata e4396: e200z7: Erroneous Address Fetch
+ *
+ * The propose workaround does not work.
+ */
+#if MPC55XX_CHIP_FAMILY != 567
+ LWI r3, FSL_EIS_BUCSR_BBFI | FSL_EIS_BUCSR_BALLOC_ALL | FSL_EIS_BUCSR_BPRED_NOT_TAKEN | FSL_EIS_BUCSR_BPEN
mtspr FSL_EIS_BUCSR, r3
+#endif
#endif /* MPC55XX_NEEDS_LOW_LEVEL_INIT */