diff options
| author | Boyan Karatotev <boyan.karatotev@arm.com> | 2026-02-06 16:18:46 -0600 |
|---|---|---|
| committer | Boyan Karatotev <boyan.karatotev@arm.com> | 2026-06-22 14:37:49 +0100 |
| commit | d7aa847231d6f27cb8505d2f24d45af3bb70a08c (patch) | |
| tree | e1c2d6e13a4e922860902f592ab905a722f1b860 /docs | |
| parent | 1ae9aeb925d3703a9068f98e37ef5a3834445a7a (diff) | |
| download | arm-trusted-firmware-d7aa847231d6f27cb8505d2f24d45af3bb70a08c.tar.gz arm-trusted-firmware-d7aa847231d6f27cb8505d2f24d45af3bb70a08c.zip | |
feat(cpufeat): add support for FEAT_BRBEv1p1
Add support for Branch Record Buffer Extension v1.1. FEAT_BRBEv1p1
introduces MDCR_EL3.{E3BREW, E3BREC} which allow for branch recording at
EL3. This patch introduces helpers to start and stop recording as well
as dumping the branch record buffer to the console.
The helpers make sure that starting and stopping branch recording saves
and restores the lower EL BRBE context. This should help prevent
security and BRBE inconsistency issues if an actual payload is running
along side this. As this is a debug feature, no calls are expected to be
committed to the repository.
Note that this feature is marked as experimental. That is because
firmware does not need to support FEAT_BRBEv1p1 for the system to be
fully functional. As such, this flag may be renamed or removed in future
iterations once a precise usage model is arrived at.
Change-Id: Ibf2f1a5e9d36f759d7b381f06103d39debe23428
Co-developed-by: Arvind Ram Prakash <arvind.ramprakash@arm.com>
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/about/features.rst | 3 | ||||
| -rw-r--r-- | docs/architecture_features.rst | 2 | ||||
| -rw-r--r-- | docs/getting_started/build-options.rst | 7 |
3 files changed, 10 insertions, 2 deletions
diff --git a/docs/about/features.rst b/docs/about/features.rst index 5c00694ca..f931a10a0 100644 --- a/docs/about/features.rst +++ b/docs/about/features.rst @@ -132,6 +132,7 @@ in a platform: - RSE comms driver ``drivers/arm/rse`` - GICv5 driver ``drivers/arm/gicv5`` via ``USE_GIC_DRIVER=5`` - FEAT_IDTE3 ``lib/extensions/idte/`` via ``ENABLE_FEAT_IDTE3`` +- FEAT_BRBEV1P1 ``lib/extensions/brbe/`` via ``ENABLE_FEAT_BRBEV1P1`` Still to come ------------- @@ -154,4 +155,4 @@ Still to come -------------- -*Copyright (c) 2019-2025, Arm Limited. All rights reserved.* +*Copyright (c) 2019-2026, Arm Limited. All rights reserved.* diff --git a/docs/architecture_features.rst b/docs/architecture_features.rst index e09d43e90..7799e559e 100644 --- a/docs/architecture_features.rst +++ b/docs/architecture_features.rst @@ -378,7 +378,7 @@ versions (8.X, 9.X) to which they apply can be found in `Feature_description`_ +------------------+--------+ | FEAT_MEC | OK | +------------------+--------+ -| FEAT_BRBEv1p1 | WIP | +| FEAT_BRBEv1p1 | OK | +------------------+--------+ | FEAT_CMOW | NA | +------------------+--------+ diff --git a/docs/getting_started/build-options.rst b/docs/getting_started/build-options.rst index 59a85cea8..7a571495f 100644 --- a/docs/getting_started/build-options.rst +++ b/docs/getting_started/build-options.rst @@ -1347,6 +1347,13 @@ flags support :ref:`enable_feat_mechanism` and take numeric values from 0 to 2. optional architectural feature for AArch64. The default is 0 and it is automatically disabled when the target architecture is AArch32. +- ``ENABLE_FEAT_BRBEV1P1``: Numeric value to enable support for + ``FEAT_BRBEv1p1``, which allows Branch recording at EL3 via the functions + ``brbe_start_recording()``, ``brbe_stop_recording()``, and + ``brbe_dump_branch_records()``. FEAT_BRBEv1p1 is an optional architectural + feature available from Arm v9.2 onwards and is EXPERIMENTAL. This flag may be + renamed or removed in the future. Default value is 0. + - ``ENABLE_TRBE_FOR_NS``: Enables access of trace buffer control registers from NS ELs, NS-EL2 or NS-EL1(when NS-EL2 is implemented but unused) when FEAT_TRBE is implemented. TRBE is an optional architectural |
