[rtems commit] powerpc: Use alternate time base for CPU counter

Sebastian Huber sebh at rtems.org
Fri Jan 9 13:09:38 UTC 2015


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

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Mon Dec 22 11:46:17 2014 +0100

powerpc: Use alternate time base for CPU counter

---

 c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c | 2 +-
 cpukit/score/cpu/powerpc/rtems/score/cpu.h        | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c b/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c
index 43caabb..364d8af 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c
@@ -89,8 +89,8 @@ void bsp_start(void)
   #ifdef HAS_UBOOT
     BSP_bus_frequency = bsp_uboot_board_info.bi_busfreq;
     bsp_clicks_per_usec = bsp_uboot_board_info.bi_busfreq / 8000000;
+    rtems_counter_initialize_converter(bsp_uboot_board_info.bi_intfreq);
   #endif /* HAS_UBOOT */
-  rtems_counter_initialize_converter(BSP_bus_frequency / 8);
 
   /* Initialize some console parameters */
   for (i = 0; i < console_device_count; ++i) {
diff --git a/cpukit/score/cpu/powerpc/rtems/score/cpu.h b/cpukit/score/cpu/powerpc/rtems/score/cpu.h
index 15854d5..2d3f05f 100644
--- a/cpukit/score/cpu/powerpc/rtems/score/cpu.h
+++ b/cpukit/score/cpu/powerpc/rtems/score/cpu.h
@@ -782,9 +782,9 @@ static inline CPU_Counter_ticks _CPU_Counter_read( void )
 {
   CPU_Counter_ticks value;
 
-#ifdef ppc8540
-  /* Book E has no mftb */
-  __asm__ volatile( "mfspr %0, 268" : "=r" (value) );
+#if defined(ppc8540) || defined(__PPC_CPU_E6500__)
+  /* Use Alternate Time Base */
+  __asm__ volatile( "mfspr %0, 526" : "=r" (value) );
 #else
   __asm__ volatile( "mftb %0" : "=r" (value) );
 #endif



More information about the vc mailing list