The MPAM3_EL3 characteristics are:
Holds information to generate MPAM labels for memory requests when executing at EL3.
AArch64 System register MPAM3_EL3 bit [63] is architecturally mapped to AArch64 System register MPAM2_EL2[63] when EL2 is implemented.
AArch64 System register MPAM3_EL3 bit [63] is architecturally mapped to AArch64 System register MPAM1_EL1[63].
This register is present only when FEAT_MPAM is implemented. Otherwise, direct accesses to MPAM3_EL3 are UNDEFINED.
MPAM3_EL3 is a 64-bit register.
The MPAM3_EL3 bit assignments are:
63 | 62 | 61 | 60 | 59 | 58 | 57 | 56 | 55 | 54 | 53 | 52 | 51 | 50 | 49 | 48 | 47 | 46 | 45 | 44 | 43 | 42 | 41 | 40 | 39 | 38 | 37 | 36 | 35 | 34 | 33 | 32 |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
MPAMEN | TRAPLOWER | SDEFLT | FORCE_NS | RES0 | ALTSP_HEN | ALTSP_HFC | ALTSP_EL3 | RES0 | RT_ALTSP_NS | RES0 | PMG_D | PMG_I | |||||||||||||||||||
PARTID_D | PARTID_I |
MPAM Enable. MPAM is enabled when MPAMEN == 1. When disabled, all PARTIDs and PMGs are output as their default value in the corresponding ID space.
Values of this field are:
MPAMEN | Meaning |
---|---|
0b0 |
The default PARTID and default PMG are output in MPAM information when executing at any ELn. |
0b1 |
MPAM information is output based on the MPAMn_ELx register for ELn according the MPAM configuration. |
On a Warm reset, this field resets to 0.
Access to this field is RW.
Trap direct accesses to MPAM System registers that are not UNDEFINED from all ELn lower than EL3.
TRAPLOWER | Meaning |
---|---|
0b0 |
Do not force trapping of direct accesses of MPAM System registers to EL3. |
0b1 |
Force direct accesses of MPAM System registers to trap to EL3. |
On a Warm reset, this field resets to 1.
SDEFLT overrides the PARTID with the default PARTID when executing in the Secure state.
SDEFLT | Meaning |
---|---|
0b0 |
The PARTID is determined normally in the Secure state. |
0b1 |
The PARTID is always PARTID 0 when executing in the Secure state. |
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Reserved, RES0.
FORCE_NS forces MPAM_NS to always be 1 in the Secure state.
FORCE_NS | Meaning |
---|---|
0b0 |
MPAM_NS is 0 when executing in the Secure state. |
0b1 |
MPAM_NS is 1 when executing in the Secure state. |
An implementation is permitted to have this field as RAO if the implementation does not support generating MPAM_NS as 0.
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Reserved, RES0.
Reserved, RES0.
Hierarchical enable for alternative PARTID space controls. Alternative PARTID space controls in MPAM2_EL2 have no effect when this field is zero.
ALTSP_HEN | Meaning |
---|---|
0b0 |
Disable alternative PARTID space controls in MPAM2_EL2. The PARTID space for PARTIDs in MPAM2_EL2, MPAM1_EL1, and MPAM0_EL1 is selected by MPAM3_EL3.ALTSP_HFC. |
0b1 |
Enable alternative PARTID space controls in MPAM2_EL2 to control the PARTID space used for PARTIDs in MPAM2_EL2, MPAM1_EL1, and MPAM0_EL1. |
For more information, see 'Alternative PARTID spaces and selection' in Arm® Architecture Reference Manual Supplement, Memory System Resource Partitioning and Monitoring (MPAM), for Armv8-A (ARM DDI 0598).
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Reserved, RES0.
Hierarchical force of alternative PARTID space controls. When MPAM3_EL3.ALTSP_HEN is 0, the PARTID space for PARTIDs in MPAM2_EL2, MPAM1_EL1, and MPAM0_EL1 is selected by the value of this bit.
ALTSP_HFC | Meaning |
---|---|
0b0 |
When MPAM3_EL3.ALTSP_HEN is 0, the PARTID space of MPAM2_EL2.PARTID, MPAM1_EL1.PARTID and MPAM0_EL1.PARTID are the primary PARTID space for the security state. |
0b1 |
When MPAM3_EL3.ALTSP_HEN is 0, the PARTID space of MPAM2_EL2.PARTID and MPAM1_EL1.PARTID and MPAM0_EL1.PARTID are the alternative PARTID space for the security state. |
For more information, see 'Alternative PARTID spaces and selection' in Arm® Architecture Reference Manual Supplement, Memory System Resource Partitioning and Monitoring (MPAM), for Armv8-A (ARM DDI 0598).
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Reserved, RES0.
Select alternative PARTID space for PARTIDs in MPAM3_EL3.
ALTSP_EL3 | Meaning |
---|---|
0b0 |
Selects the primary PARTID space of MPAM3_EL3.PARTID_I and MPAM3_EL3.PARTID_D. |
0b1 |
Selects the alternative PARTID space of MPAM3_EL3.PARTID_I and MPAM3_EL3.PARTID_D. |
For more information, see 'Alternative PARTID spaces and selection' in Arm® Architecture Reference Manual Supplement, Memory System Resource Partitioning and Monitoring (MPAM), for Armv8-A (ARM DDI 0598).
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Reserved, RES0.
Reserved, RES0.
Alternative PARTID space selection for the Root security state.
RT_ALTSP_NS | Meaning |
---|---|
0b0 |
The alternative PARTID space in the Root security state is the Secure PARTID space. |
0b1 |
The alternative PARTID space in the Root security state is the Non-secure PARTID space. |
This field has no effect except in the Root security state (EL3).
On a Warm reset, this field resets to 0.
Reserved, RES0.
Reserved, RES0.
Performance monitoring group for data accesses.
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Performance monitoring group for instruction accesses.
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Partition ID for data accesses, including load and store accesses, made from EL3.
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Partition ID for instruction accesses made from EL3.
On a Warm reset, this field resets to an architecturally UNKNOWN value.
None of the fields in this register are permitted to be cached in a TLB.
Accesses to this register use the following encodings:
op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|
0b11 | 0b110 | 0b1010 | 0b0101 | 0b000 |
if PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then UNDEFINED; elsif PSTATE.EL == EL2 then UNDEFINED; elsif PSTATE.EL == EL3 then return MPAM3_EL3;
op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|
0b11 | 0b110 | 0b1010 | 0b0101 | 0b000 |
if PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then UNDEFINED; elsif PSTATE.EL == EL2 then UNDEFINED; elsif PSTATE.EL == EL3 then MPAM3_EL3 = X[t];
30/03/2021 20:52; e3551d56dc294a4d55296a6c10544191ada08a8e
Copyright © 2010-2021 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.