4.2. Activity Monitors
FEAT_AMUv1 of the Armv8-A architecture introduces the Activity Monitors extension. This extension describes the architecture for the Activity Monitor Unit (AMU), an optional non-invasive component for monitoring core events through a set of 64-bit counters.
When the ENABLE_FEAT_AMU build option is enabled, Trusted Firmware-A
sets up the AMU prior to its exit from EL3, and will save and restore
architected AMU counters upon suspend and resume. It will also save and
restore counters 2 and 3 (INST_RETIRED and STALL_BACKEND_MEM) when switching
worlds to prevent leaking potentially sensitive information. Counters 0 and 1
(CPU_CYCLES and CNT_CYCLES) always count to enable accurate performance
modelling of the OS.
4.2.1. Auxiliary counters
FEAT_AMUv1 describes a set of implementation-defined auxiliary counters (also
known as group 1 counters), controlled by the ENABLE_AMU_AUXILIARY_COUNTERS
build option.
As a security precaution, Trusted Firmware-A does not enable these by default.
Instead, platforms must configure their auxiliary counters through the
plat_amu_aux_enables platform hook. This is a per-core array indexed with
plat_my_core_pos(). A core’s value will be written verbatim into
AMCNTENSET1_EL0.
Copyright (c) 2021-2025, Arm Limited. All rights reserved.