arm-trusted-firmware/lib/extensions
Chris Kay 742ca2307f feat(amu): enable per-core AMU auxiliary counters
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>
2021-10-26 12:15:33 +01:00
..
amu feat(amu): enable per-core AMU auxiliary counters 2021-10-26 12:15:33 +01:00
mpam TF-A: Fix wrong register read for MPAM extension 2020-05-26 15:39:52 +00:00
mtpmu Add support for FEAT_MTPMU for Armv8.6 2020-12-11 12:49:20 +00:00
pauth TF-A: Add support for ARMv8.3-PAuth in BL1 SMC calls and BL2U 2019-10-03 14:43:55 +01:00
ras lib/extensions/ras: fix bug of binary search 2021-01-14 09:27:16 +08:00
spe SPE: Fix feature detection 2020-09-14 18:00:18 +01:00
sve fix(el3_runtime): fix SVE and AMU extension enablement flags 2021-07-23 10:33:59 +01:00
sys_reg_trace feat(sys_reg_trace): enable trace system registers access from lower NS ELs 2021-08-26 09:29:51 +01:00
trbe feat(trbe): enable access to trace buffer control registers from lower NS EL 2021-08-26 09:29:39 +01:00
trf feat(trf): enable trace filter control register access from lower NS EL 2021-08-26 09:32:35 +01:00