arm-trusted-firmware/include/lib
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
..
bl_aux_params Factor out cross-BL API into export headers suitable for 3rd party code 2019-07-23 20:25:34 -07:00
cpus fix(cpu): correct Demeter CPU name 2021-10-21 20:12:28 +02:00
el3_runtime feat(rme): add context management changes for FEAT_RME 2021-10-05 18:41:35 +02:00
extensions feat(amu): enable per-core AMU auxiliary counters 2021-10-26 12:15:33 +01:00
fconf feat(amu): enable per-core AMU auxiliary counters 2021-10-26 12:15:33 +01:00
gpt_rme refactor(gpt): productize and refactor GPT library 2021-10-05 16:24:57 -05:00
libc feat(hw_crc): add support for HW computed CRC 2021-05-19 19:34:34 +01:00
libfdt libfdt: Upgrade libfdt source files 2020-10-02 12:15:48 +00:00
pmf Increase type widths to satisfy width requirements 2020-10-12 10:55:03 -05:00
psci psci: utility api to invoke stop for other cores 2020-09-03 09:29:22 +00:00
xlat_mpu fvp_r: load, auth, and transfer from BL1 to BL33 2021-09-30 17:07:11 +01:00
xlat_tables feat(rme): add xlat table library changes for FEAT_RME 2021-10-04 14:09:23 -05:00
zlib Standardise header guards across codebase 2018-11-08 10:20:19 +00:00
bakery_lock.h Replace __ASSEMBLY__ with compiler-builtin __ASSEMBLER__ 2019-08-01 13:14:12 -07:00
cassert.h Standardise header guards across codebase 2018-11-08 10:20:19 +00:00
coreboot.h Update in coreboot_get_memory_type API to include size as well 2020-10-16 02:23:35 +05:30
debugfs.h debugfs: add SMC channel 2019-12-18 09:59:12 +01:00
mmio.h Standardise header guards across codebase 2018-11-08 10:20:19 +00:00
object_pool.h fconf: Fix misra issues 2020-02-27 16:14:07 +00:00
optee_utils.h feat(lib/optee): introduce optee_header_is_valid() 2021-09-06 13:21:54 +02:00
runtime_instr.h Replace __ASSEMBLY__ with compiler-builtin __ASSEMBLER__ 2019-08-01 13:14:12 -07:00
semihosting.h qemu: Implement qemu_system_off via semihosting. 2020-01-23 10:53:45 +00:00
smccc.h feat(rme): add Realm security state definition 2021-10-01 16:54:44 -05:00
spinlock.h Replace __ASSEMBLY__ with compiler-builtin __ASSEMBLER__ 2019-08-01 13:14:12 -07:00
utils.h arm: gicv3: Fix compiler dependent behavior 2019-12-10 15:53:44 -06:00
utils_def.h NXP: Timer API added to enable ARM generic timer 2021-03-24 09:49:31 +05:30