summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoyan Karatotev <boyan.karatotev@arm.com>2025-12-04 15:23:08 +0000
committerBoyan Karatotev <boyan.karatotev@arm.com>2026-01-07 17:46:00 +0000
commitef545e81134013639a8cde489d16786ddaf9daca (patch)
tree27dfe560aceb5bb1fcdc5085d1ff581e72368f25
parente9730867dbee4620e1af008e224108b1f2265ac0 (diff)
downloadarm-trusted-firmware-ef545e81134013639a8cde489d16786ddaf9daca.tar.gz
arm-trusted-firmware-ef545e81134013639a8cde489d16786ddaf9daca.zip
feat(per-cpu): migrate AArch32 amu_ctx to per-cpu framework
Brings it in line with AArch64. Change-Id: I9333ea9cf07679735da169dae0fe90a8856d9801 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
-rw-r--r--lib/extensions/amu/aarch32/amu.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/extensions/amu/aarch32/amu.c b/lib/extensions/amu/aarch32/amu.c
index 91e585b09..770823c2c 100644
--- a/lib/extensions/amu/aarch32/amu.c
+++ b/lib/extensions/amu/aarch32/amu.c
@@ -14,10 +14,11 @@
#include <common/debug.h>
#include <lib/el3_runtime/pubsub_events.h>
#include <lib/extensions/amu.h>
+#include <lib/per_cpu/per_cpu.h>
#include <plat/common/platform.h>
-amu_regs_t amu_ctx[PLATFORM_CORE_COUNT];
+PER_CPU_DEFINE(amu_regs_t, amu_ctx);
static inline __unused uint32_t read_amcgcr_cg1nc(void)
{
@@ -80,7 +81,7 @@ static void *amu_context_save(const void *arg)
}
unsigned int core_pos = *(unsigned int *)arg;
- amu_regs_t *ctx = &amu_ctx[core_pos];
+ amu_regs_t *ctx = PER_CPU_CUR(amu_ctx);
/* Disable all counters so we can write to them safely later */
write_amcntenclr0(AMCNTENCLR0_Pn_MASK);
@@ -164,7 +165,7 @@ static void *amu_context_restore(const void *arg)
}
unsigned int core_pos = *(unsigned int *)arg;
- amu_regs_t *ctx = &amu_ctx[core_pos];
+ amu_regs_t *ctx = PER_CPU_CUR(amu_ctx);
write64_amevcntr00(read_amu_grp0_ctx_reg(ctx, 0));
write64_amevcntr01(read_amu_grp0_ctx_reg(ctx, 1));