This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Physical counter in juno board

Hey,

Reading CNTPCT and system counter in different cores results in different results. These values should be common across all the cores. Why is the difference?

Thanks,

Gowthami

Parents
  • Hi Mark,

    I tried reading the values in DS-5.

    Reading CNTPCT_EL0 register in EL2 (Hypervisor mode) in AArch64 state results in this value. Also, I observed a similar behaviour when I read the memory mapped CNTCV value (0x2a800000).

    Secondary core reports a lower value than the primary core as time goes by.

    Thanks,

    Gowthami

Reply
  • Hi Mark,

    I tried reading the values in DS-5.

    Reading CNTPCT_EL0 register in EL2 (Hypervisor mode) in AArch64 state results in this value. Also, I observed a similar behaviour when I read the memory mapped CNTCV value (0x2a800000).

    Secondary core reports a lower value than the primary core as time goes by.

    Thanks,

    Gowthami

Children
  • Hi,

    That's confusing, it's not what I see on my board.

    Although you haven't said what the magnitude of the difference is that's concerning you.

    A couple of thoughts:

    • Although the System Timer count is based on a common timebase, the architecture allows for some flexibility (latency when reading via different observers/mechanisms) as long as time can't be seen to go backwards. So I wouldn't necessarily expect to see the same count in such a test, just similar counts.
    • Note the debugger will read the register once on entry to debug state and effectively show a "cached" value. You need to manually refresh the view it to get an updated reading.