19cf75647SChris KayActivity Monitors 29cf75647SChris Kay================= 39cf75647SChris Kay 49cf75647SChris KayFEAT_AMUv1 of the Armv8-A architecture introduces the Activity Monitors 59cf75647SChris Kayextension. This extension describes the architecture for the Activity Monitor 69cf75647SChris KayUnit (|AMU|), an optional non-invasive component for monitoring core events 79cf75647SChris Kaythrough a set of 64-bit counters. 89cf75647SChris Kay 9d23acc9eSAndre PrzywaraWhen the ``ENABLE_FEAT_AMU=1`` build option is provided, Trusted Firmware-A 10d23acc9eSAndre Przywarasets up the |AMU| prior to its exit from EL3, and will save and restore 11d23acc9eSAndre Przywaraarchitected |AMU| counters as necessary upon suspend and resume. 129cf75647SChris Kay 1368120783SChris Kay.. _Activity Monitor Auxiliary Counters: 1468120783SChris Kay 15742ca230SChris KayAuxiliary counters 16742ca230SChris Kay------------------ 17742ca230SChris Kay 18742ca230SChris KayFEAT_AMUv1 describes a set of implementation-defined auxiliary counters (also 19742ca230SChris Kayknown as group 1 counters), controlled by the ``ENABLE_AMU_AUXILIARY_COUNTERS`` 20742ca230SChris Kaybuild option. 21742ca230SChris Kay 22742ca230SChris KayAs a security precaution, Trusted Firmware-A does not enable these by default. 2383ec7e45SBoyan KaratotevInstead, platforms must configure their auxiliary counters through the 24*a02495eaSBoyan Karatotev``plat_amu_aux_enables`` platform hook. This is a per-core array indexed with 25*a02495eaSBoyan Karatotev``plat_my_core_pos()``. A core's value will be written verbatim into 26*a02495eaSBoyan Karatotev``AMCNTENSET1_EL0``. 27742ca230SChris Kay 289cf75647SChris Kay-------------- 299cf75647SChris Kay 3083ec7e45SBoyan Karatotev*Copyright (c) 2021-2025, Arm Limited. All rights reserved.* 31