diff options
Diffstat (limited to 'cpukit/score/cpu/arm/rtems/asm.h')
-rw-r--r-- | cpukit/score/cpu/arm/rtems/asm.h | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/cpukit/score/cpu/arm/rtems/asm.h b/cpukit/score/cpu/arm/rtems/asm.h index d22514d60a..ec5ddc94ac 100644 --- a/cpukit/score/cpu/arm/rtems/asm.h +++ b/cpukit/score/cpu/arm/rtems/asm.h @@ -187,14 +187,12 @@ #endif /* __thumb__ */ .endm -.macro GET_SELF_CPU_CONTROL REG, TMP - ldr \REG, =_Per_CPU_Information +.macro GET_SELF_CPU_CONTROL REG #ifdef RTEMS_SMP - /* Use ARMv7 Multiprocessor Affinity Register (MPIDR) */ - mrc p15, 0, \TMP, c0, c0, 5 - - and \TMP, \TMP, #0xff - add \REG, \REG, \TMP, asl #PER_CPU_CONTROL_SIZE_LOG2 + /* Use PL1 only Thread ID Register (TPIDRPRW) */ + mrc p15, 0, \REG, c13, c0, 4 +#else + ldr \REG, =_Per_CPU_Information #endif .endm |