summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2015-07-02 12:04:50 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2015-07-08 10:07:59 +0200
commit3e02a472baf7764e37825257490e90df0487a778 (patch)
tree7f8b178b4385f4f4211be628b822c4869b36783e
parentbsp/qoriq: Use -O2 for T series (diff)
downloadrtems-3e02a472baf7764e37825257490e90df0487a778.tar.bz2
bsp/qoriq: Enable branch prediction for T series
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/configure.ac4
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/start/start.S14
2 files changed, 18 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/powerpc/qoriq/configure.ac b/c/src/lib/libbsp/powerpc/qoriq/configure.ac
index 409ac193c4..3cf8547d5b 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/configure.ac
+++ b/c/src/lib/libbsp/powerpc/qoriq/configure.ac
@@ -146,6 +146,10 @@ RTEMS_BSPOPTS_SET([QORIQ_INITIAL_SPEFSCR],[qoriq_t*],[])
RTEMS_BSPOPTS_SET([QORIQ_INITIAL_SPEFSCR],[*],[0x00000000])
RTEMS_BSPOPTS_HELP([QORIQ_INITIAL_SPEFSCR],[initial SPEFSCR value])
+RTEMS_BSPOPTS_SET([QORIQ_INITIAL_BUCSR],[qoriq_t*],[0x01400201])
+RTEMS_BSPOPTS_SET([QORIQ_INITIAL_BUCSR],[*],[])
+RTEMS_BSPOPTS_HELP([QORIQ_INITIAL_BUCSR],[initial BUCSR value])
+
RTEMS_BSPOPTS_SET([QORIQ_MMU_DEVICE_MAS7],[qoriq_t*],[0xf])
RTEMS_BSPOPTS_SET([QORIQ_MMU_DEVICE_MAS7],[*],[0x0])
RTEMS_BSPOPTS_HELP([QORIQ_MMU_DEVICE_MAS7],[MAS7 value for device TLB1 entries])
diff --git a/c/src/lib/libbsp/powerpc/qoriq/start/start.S b/c/src/lib/libbsp/powerpc/qoriq/start/start.S
index 6b2187c1be..8a073bf09e 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/start/start.S
+++ b/c/src/lib/libbsp/powerpc/qoriq/start/start.S
@@ -66,6 +66,13 @@ _start:
ori r0, INITIAL_MSR, MSR_IS | MSR_DS
mtmsr r0
+#ifdef QORIQ_INITIAL_BUCSR
+ /* BUCSR initialization */
+ LWI r0, QORIQ_INITIAL_BUCSR
+ mtspr FSL_EIS_BUCSR, r0
+ isync
+#endif
+
/* Initialize start stack */
LWI r1, start_stack_end - PPC_MINIMUM_STACK_FRAME_SIZE
clrrwi r1, r1, PPC_STACK_ALIGN_POWER
@@ -210,6 +217,13 @@ _start_secondary_processor:
ori r0, INITIAL_MSR, MSR_IS | MSR_DS
mtmsr r0
+#ifdef QORIQ_INITIAL_BUCSR
+ /* BUCSR initialization */
+ LWI r0, QORIQ_INITIAL_BUCSR
+ mtspr FSL_EIS_BUCSR, r0
+ isync
+#endif
+
/* Initialize start stack */
subi r1, r1, PPC_MINIMUM_STACK_FRAME_SIZE
clrrwi r1, r1, PPC_STACK_ALIGN_POWER