mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-17 18:14:24 +00:00

This change makes AMU auxiliary counters configurable on a per-core basis, controlled by `ENABLE_AMU_AUXILIARY_COUNTERS`. Auxiliary counters can be described via the `HW_CONFIG` device tree if the `ENABLE_AMU_FCONF` build option is enabled, or the platform must otherwise implement the `plat_amu_topology` function. A new phandle property for `cpu` nodes (`amu`) has been introduced to the `HW_CONFIG` specification to allow CPUs to describe the view of their own AMU: ``` cpu0: cpu@0 { ... amu = <&cpu0_amu>; }; ``` Multiple cores may share an `amu` handle if they implement the same set of auxiliary counters. AMU counters are described for one or more AMUs through the use of a new `amus` node: ``` amus { cpu0_amu: amu-0 { #address-cells = <1>; #size-cells = <0>; counter@0 { reg = <0>; enable-at-el3; }; counter@n { reg = <n>; ... }; }; }; ``` This structure describes the **auxiliary** (group 1) AMU counters. Architected counters have architecturally-defined behaviour, and as such do not require DTB entries. These `counter` nodes support two properties: - The `reg` property represents the counter register index. - The presence of the `enable-at-el3` property determines whether the firmware should enable the counter prior to exiting EL3. Change-Id: Ie43aee010518c5725a3b338a4899b0857caf4c28 Signed-off-by: Chris Kay <chris.kay@arm.com>
32 lines
1.2 KiB
ReStructuredText
32 lines
1.2 KiB
ReStructuredText
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_AMU=1`` build option is provided, Trusted Firmware-A sets up
|
|
the |AMU| prior to its exit from EL3, and will save and restore architected
|
|
|AMU| counters as necessary upon suspend and resume.
|
|
|
|
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 may configure their auxiliary counters through one of two
|
|
possible mechanisms:
|
|
|
|
- |FCONF|, controlled by the ``ENABLE_AMU_FCONF`` build option.
|
|
- A platform implementation of the ``plat_amu_topology`` function (the default).
|
|
|
|
See :ref:`Activity Monitor Unit (AMU) Bindings` for documentation on the |FCONF|
|
|
device tree bindings.
|
|
|
|
--------------
|
|
|
|
*Copyright (c) 2021, Arm Limited. All rights reserved.*
|