From edebefbcbc01f4ab67a7838e0191736fd9ee0192 Mon Sep 17 00:00:00 2001 From: Arvind Ram Prakash Date: Wed, 11 Oct 2023 12:10:56 -0500 Subject: fix(mpam): refine MPAM initialization and enablement process Restricts MPAM to only NS world and enables trap to EL3 for access of MPAM registers from lower ELs of Secure and Realm world. This patch removes MPAM enablement from global context and adds it to EL3 State context which enables/disables MPAM during world switches. Renamed ENABLE_MPAM_FOR_LOWER_ELS to ENABLE_FEAT_MPAM and removed mpam_init_el3() as RESET behaviour is trapping. Signed-off-by: Arvind Ram Prakash Change-Id: I131f9dba5df236a71959b2d425ee11af7f3c38c4 --- docs/getting_started/build-options.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/getting_started/build-options.rst b/docs/getting_started/build-options.rst index cd70a2275..654ddc54d 100644 --- a/docs/getting_started/build-options.rst +++ b/docs/getting_started/build-options.rst @@ -397,7 +397,7 @@ Common build options support in GCC for TF-A. This option is currently only supported for AArch64. Default is 0. -- ``ENABLE_MPAM_FOR_LOWER_ELS``: Numeric value to enable lower ELs to use MPAM +- ``ENABLE_FEAT_MPAM``: Numeric value to enable lower ELs to use MPAM feature. MPAM is an optional Armv8.4 extension that enables various memory system components and resources to define partitions; software running at various ELs can assign themselves to desired partition to control their @@ -408,7 +408,9 @@ Common build options access their own MPAM registers without trapping into EL3. This option doesn't make use of partitioning in EL3, however. Platform initialisation code should configure and use partitions in EL3 as required. This option - defaults to ``0``. + defaults to ``2`` since MPAM is enabled by default for NS world only. + The flag is automatically disabled when the target + architecture is AArch32. - ``ENABLE_MPMM``: Boolean option to enable support for the Maximum Power Mitigation Mechanism supported by certain Arm cores, which allows the SoC -- cgit v1.2.3