bcm-v4

[Specification

u32 ILP Clock

  1. Create a static u32 called cycles
  2. If chipcommon capabilities & 0x1000000 is zero

    1. Return 32000
  3. If cycles is zero (i.e. first pass)
    1. Save the current core index
    2. Switch to chipcommon core
    3. Set u32 variable start to contents of the PMU Timer (MMIO offset 0x614)
    4. Delay 10,000 usec
    5. Set u32 variable end to contents of the PMU timeer
    6. If end >= start

      1. Set delta to end - start
    7. Otherwise
      1. Set delta to 0xFFFFFFFF - start + 1 + end
    8. Set cycles to delta / 10
    9. Restore original core
  4. Return cycles

Exported/Archived from the wiki to HTML on 2016-10-27