[rtems commit] bsp/qoriq: Enable branch prediction for T series

Sebastian Huber sebh at rtems.org
Wed Jul 8 08:11:46 UTC 2015


Module:    rtems
Branch:    master
Commit:    3e02a472baf7764e37825257490e90df0487a778
Changeset: http://git.rtems.org/rtems/commit/?id=3e02a472baf7764e37825257490e90df0487a778

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Thu Jul  2 12:04:50 2015 +0200

bsp/qoriq: Enable branch prediction for T series

---

 c/src/lib/libbsp/powerpc/qoriq/configure.ac  |  4 ++++
 c/src/lib/libbsp/powerpc/qoriq/start/start.S | 14 ++++++++++++++
 2 files changed, 18 insertions(+)

diff --git a/c/src/lib/libbsp/powerpc/qoriq/configure.ac b/c/src/lib/libbsp/powerpc/qoriq/configure.ac
index 409ac19..3cf8547 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 6b2187c..8a073bf 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




More information about the vc mailing list