diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-02-10 12:21:24 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-02-10 16:58:03 +0100 |
commit | 0df8d7f20d1e1e0cddf52f3338989f4fdf2cd8ad (patch) | |
tree | c13e559b3774f5e08eb6778f74f1137325bf1ffe /c/src/lib/libbsp/arm/shared/include/arm-a9mpcore-start.h | |
parent | bsps/arm: Include missing header file (diff) | |
download | rtems-0df8d7f20d1e1e0cddf52f3338989f4fdf2cd8ad.tar.bz2 |
bsps/arm: Use Global Timer for Cortex-A9 MPCore
Use the Global Timer for the Cortex-A9 MPCore clock driver instead of
the Private Timer. This enables a consistent nanoseconds since last
context switch value across all processors.
Diffstat (limited to 'c/src/lib/libbsp/arm/shared/include/arm-a9mpcore-start.h')
-rw-r--r-- | c/src/lib/libbsp/arm/shared/include/arm-a9mpcore-start.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/arm/shared/include/arm-a9mpcore-start.h b/c/src/lib/libbsp/arm/shared/include/arm-a9mpcore-start.h index a62dcdaf83..9ebc5a5cac 100644 --- a/c/src/lib/libbsp/arm/shared/include/arm-a9mpcore-start.h +++ b/c/src/lib/libbsp/arm/shared/include/arm-a9mpcore-start.h @@ -120,8 +120,19 @@ BSP_START_TEXT_SECTION static inline arm_a9mpcore_start_hook_0(void) #endif } +BSP_START_TEXT_SECTION static inline arm_a9mpcore_start_global_timer(void) +{ + volatile a9mpcore_gt *gt = (volatile a9mpcore_gt *) BSP_ARM_A9MPCORE_GT_BASE; + + gt->ctrl = 0; + gt->cntrlower = 0; + gt->cntrupper = 0; + gt->ctrl = A9MPCORE_GT_CTRL_TMR_EN; +} + BSP_START_TEXT_SECTION static inline arm_a9mpcore_start_hook_1(void) { + arm_a9mpcore_start_global_timer(); arm_a9mpcore_start_set_vector_base(); } |