summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiuseppe Calderaro <giuseppe.calderaro@arm.com>2012-05-08 11:42:30 +0100
committerDietmar Eggemann <dietmar.eggemann@arm.com>2012-05-23 12:44:35 +0100
commitac8fa6d075505948164798da1e4ec740288404d3 (patch)
tree925389a97248f13be451a8b08f6ecb9bbd677a1b
parent1772b54e21038c64850dfe8e33f79e691cec2e14 (diff)
PMU_CONF_RESET_COUNTER was not enabling PMCR.E bit. Now fixed.
-rw-r--r--big-little/virtualisor/pmu_trap_handler.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/big-little/virtualisor/pmu_trap_handler.c b/big-little/virtualisor/pmu_trap_handler.c
index 2aa28e3..7ebd8bf 100644
--- a/big-little/virtualisor/pmu_trap_handler.c
+++ b/big-little/virtualisor/pmu_trap_handler.c
@@ -256,6 +256,11 @@ static void handle_desc(struct descriptor *desc,
break;
case PMU_REQ_CONF_RESET_COUNTER:
if (cluster_id == entry_cluster) {
+ /* Toggle global enable bit. */
+ tmp = read_pmcr();
+ tmp |= 1;
+ write_pmcr(tmp);
+
switch (selected_counter) {
case PMU_CNT_CYCLE_COUNTER:
write_pmccntr(reset_value);
@@ -278,6 +283,8 @@ static void handle_desc(struct descriptor *desc,
break;
};
} else {
+ clusters_ctx[cluster_id][cpu_id][PMCR_IDX] |= 1;
+
switch (selected_counter) {
case PMU_CNT_CYCLE_COUNTER:
clusters_ctx