summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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