Changeset 3fa509b in mainline for kernel/arch/arm32/include/cycle.h


Ignore:
Timestamp:
2013-01-19T23:59:25Z (11 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
9eec7bc
Parents:
4b28c70
Message:

arm32, armv7: Add reading of performance cycles counter.

Fix comment about WFE.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/arm32/include/cycle.h

    r4b28c70 r3fa509b  
    3838
    3939#include <trace.h>
     40#include <arch/cp15.h>
    4041
    4142/** Return count of CPU cycles.
     
    4849NO_TRACE static inline uint64_t get_cycle(void)
    4950{
     51#ifdef PROCESSOR_ARCH_armv7_a
     52        if ((ID_PFR1_read() & ID_PFR1_GEN_TIMER_EXT_MASK) ==
     53            ID_PFR1_GEN_TIMER_EXT) {
     54            uint32_t low = 0, high = 0;
     55            asm volatile( "MRRC p15, 0, %[low], %[high], c14": [low]"=r"(low), [high]"=r"(high));
     56           return ((uint64_t)high << 32) | low;
     57        } else {
     58                return PMCCNTR_read();
     59        }
     60#endif
    5061        return 0;
    5162}
Note: See TracChangeset for help on using the changeset viewer.