Other Parts Discussed in Thread: RM48L952, HALCOGEN
I am using the RM48L952.
Upon reviewing the HALCoGen PMU initialization driver I noticed that the Count Enable Set Register (PMCNTENSET) is written with 0x11 for each of the three counters. PMCNTENSET[0] is the counter 0 enable bit. However, PMCNTENSET[4] is a reserved bit. Why is it being written? See the register definition here:
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0363g/Bgbejcgj.html
And the function here:
;-------------------------------------------------------------------------------
; Initialize Pmu
; Note: It will reset all counters
; SourceId : PMU_SourceId_001
; DesignId : PMU_DesignId_001
; Requirements : HL_SR484
export _pmuInit_
_pmuInit_
stmfd sp!, {r0}
; set control register
mrc p15, #0, r0, c9, c12, #0
orr r0, r0, #(1 << 4) + 6 + 1
mcr p15, #0, r0, c9, c12, #0
; clear flags
mov r0, #0
sub r0, r0, #1
mcr p15, #0, r0, c9, c12, #3
; select counter 0 event
mcr p15, #0, r0, c9, c12, #5 ; select counter
mov r0, #0x11
mcr p15, #0, r0, c9, c13, #1 ; select event
; select counter 1 event
mov r0, #1
mcr p15, #0, r0, c9, c12, #5 ; select counter
mov r0, #0x11
mcr p15, #0, r0, c9, c13, #1 ; select event
; select counter 2 event
mov r0, #2
mcr p15, #0, r0, c9, c12, #5 ; select counter
mov r0, #0x11
mcr p15, #0, r0, c9, c13, #1 ; select event
ldmfd sp!, {r0}
bx lr