aboutsummaryrefslogtreecommitdiff
path: root/src/ethosu_pmu.c
diff options
context:
space:
mode:
authorPer Åstrand <per.astrand@arm.com>2021-03-11 10:25:18 +0100
committerPer Åstrand <per.astrand@arm.com>2021-03-16 15:27:43 +0100
commit0fd65cec95a1d8735c21c4dc3b728576e09487ad (patch)
treef845730f6f5768fb252e61db1eb8e15afec1c340 /src/ethosu_pmu.c
parent8565d75b96a2f57f559f12dc0c68438bcfd276c8 (diff)
downloadethos-u-core-driver-0fd65cec95a1d8735c21c4dc3b728576e09487ad.tar.gz
Use event enum for configuring cycle counter
The pmu configuration API expects the internal configuration values, and not the exported enum. Update the API to instead use the enums to be able to configure them correctly. Change-Id: I038b1841f2459baec4a62a6a4389ea4b5f4822f2
Diffstat (limited to 'src/ethosu_pmu.c')
-rw-r--r--src/ethosu_pmu.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/ethosu_pmu.c b/src/ethosu_pmu.c
index 759a722..aef3255 100644
--- a/src/ethosu_pmu.c
+++ b/src/ethosu_pmu.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2019-2020 Arm Limited. All rights reserved.
+ * Copyright (c) 2019-2021 Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -288,20 +288,22 @@ void ETHOSU_PMU_CNTR_Increment_v2(struct ethosu_driver *drv, uint32_t mask)
ETHOSU_PMU_CNTR_Enable_v2(drv, cntrs_active);
}
-void ETHOSU_PMU_PMCCNTR_CFG_Set_Start_Event_v2(struct ethosu_driver *drv, uint32_t start_event)
+void ETHOSU_PMU_PMCCNTR_CFG_Set_Start_Event_v2(struct ethosu_driver *drv, enum ethosu_pmu_event_type start_event)
{
LOG_DEBUG("%s: start_event=%u\n", __FUNCTION__, start_event);
+ uint32_t val = pmu_event_value(start_event);
struct pmccntr_cfg_r cfg;
cfg.word = drv->dev.pmccntr_cfg;
- cfg.CYCLE_CNT_CFG_START = start_event;
+ cfg.CYCLE_CNT_CFG_START = val;
ethosu_write_reg_shadow(&drv->dev, NPU_REG_PMCCNTR_CFG, cfg.word, &drv->dev.pmccntr_cfg);
}
-void ETHOSU_PMU_PMCCNTR_CFG_Set_Stop_Event_v2(struct ethosu_driver *drv, uint32_t stop_event)
+void ETHOSU_PMU_PMCCNTR_CFG_Set_Stop_Event_v2(struct ethosu_driver *drv, enum ethosu_pmu_event_type stop_event)
{
LOG_DEBUG("%s: stop_event=%u\n", __FUNCTION__, stop_event);
+ uint32_t val = pmu_event_value(stop_event);
struct pmccntr_cfg_r cfg;
cfg.word = drv->dev.pmccntr_cfg;
- cfg.CYCLE_CNT_CFG_STOP = stop_event;
+ cfg.CYCLE_CNT_CFG_STOP = val;
ethosu_write_reg_shadow(&drv->dev, NPU_REG_PMCCNTR_CFG, cfg.word, &drv->dev.pmccntr_cfg);
}