MPAMF_IDR, MPAM Features Identification Register
The MPAMF_IDR characteristics are:
Purpose
Indicates which memory partitioning and monitoring features are present on this MSC. MPAMF_IDR_s indicates the MPAM features accessed from the Secure MPAM feature page. MPAMF_IDR_ns indicates the MPAM features accessed from the Non-secure MPAM feature page.
When MPAMF_IDR.HAS_RIS is 1, some fields in this register give information for the resource instance selected by MPAMCFG_PART_SEL.RIS. The description of every field that is affected by MPAMCFG_PART_SEL.RIS has that information within the field description.
Configuration
The power domain of MPAMF_IDR is IMPLEMENTATION DEFINED.
This register is present only when FEAT_MPAM is implemented. Otherwise, direct accesses to MPAMF_IDR are RES0.
MAMPF_IDR is 64-bit register when MPAM v0.1 or v1.1 is implemented.
Otherwise, MAMPF_IDR is a 32-bit register.
Attributes
MPAMF_IDR is a:
- 64-bit register when FEAT_MPAMv0p1 is implemented or FEAT_MPAMv1p1 is implemented
- 32-bit register otherwise
Field descriptions
The MPAMF_IDR bit assignments are:
When FEAT_MPAMv0p1 is implemented or FEAT_MPAMv1p1 is implemented: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 RES0 RIS_MAX RES0 HAS_ESR HAS_EXTD_ESR NO_IMPL_MSMON NO_IMPL_PART RES0 HAS_RIS HAS_PARTID_NRW HAS_MSMON HAS_IMPL_IDR EXT HAS_PRI_PART HAS_MBW_PART HAS_CPOR_PART HAS_CCAP_PART PMG_MAX PARTID_MAX
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 |
RES0 | RIS_MAX | RES0 | HAS_ESR | HAS_EXTD_ESR | NO_IMPL_MSMON | NO_IMPL_PART | RES0 | HAS_RIS | |||||||||||||||||||||||
HAS_PARTID_NRW | HAS_MSMON | HAS_IMPL_IDR | EXT | HAS_PRI_PART | HAS_MBW_PART | HAS_CPOR_PART | HAS_CCAP_PART | PMG_MAX | PARTID_MAX |
Bits [63:60]
Reserved, RES0.
RIS_MAX, bits [59:56]
When MPAMF_IDR.EXT == 1 and MPAMF_IDR.HAS_RIS == 1:
When MPAMF_IDR.EXT == 1 and MPAMF_IDR.HAS_RIS == 1:
Maximum RIS value supported in MPAMCFG_PART_SEL. Must be 0b0000 if MPAMF_IDR.HAS_RIS == 0.
Otherwise:
Otherwise:
Reserved, RES0.
Bits [55:40]
Reserved, RES0.
HAS_ESR, bit [39]
When MPAMF_IDR.EXT == 1:
When MPAMF_IDR.EXT == 1:
MPAMF_ESR is implemented.
HAS_ESR | Meaning |
---|---|
0b0 |
MPAMF_ESR, MPAMF_ECR, and MPAM error handling are not implemented. |
0b1 |
MPAMF_ESR, MPAMF_ECR, and MPAM error handling are implemented. |
Otherwise:
Otherwise:
Reserved, RES0.
HAS_EXTD_ESR, bit [38]
When MPAMF_IDR.EXT == 1:
When MPAMF_IDR.EXT == 1:
MPAMF_ESR is 64 bits.
HAS_EXTD_ESR | Meaning |
---|---|
0b0 |
MPAMF_ESR is 32 bits. |
0b1 |
MPAMF_ESR is 64 bits. |
When MPAMF_IDR.HAS_RIS and MPAMF_IDR.HAS_ESR, this field must be 1.
Otherwise:
Otherwise:
Reserved, RES0.
NO_IMPL_MSMON, bit [37]
When MPAMF_IDR.EXT == 1 and MPAMF_IDR.HAS_IMPL_IDR == 1:
When MPAMF_IDR.EXT == 1 and MPAMF_IDR.HAS_IMPL_IDR == 1:
MPAMF_IMPL_IDR defines no IMPLEMENTATION DEFINED resource monitors.
NO_IMPL_MSMON | Meaning |
---|---|
0b0 |
MPAMF_IMPL_IDR defines at least one IMPLEMENTATION DEFINED resource monitor. |
0b1 |
MPAMF_IMPL_IDR does not define any IMPLEMENTATION DEFINED resource monitors. |
If RIS is implemented, this field indicates the presence of IMPLEMENTATION DEFINED resource monitors described in MPAMF_IMPL_IDR for the selected resource instance.
Otherwise:
Otherwise:
Reserved, RES0.
NO_IMPL_PART, bit [36]
When MPAMF_IDR.EXT == 1 and MPAMF_IDR.HAS_IMPL_IDR == 1:
When MPAMF_IDR.EXT == 1 and MPAMF_IDR.HAS_IMPL_IDR == 1:
MPAMF_IMPL_IDR defines no IMPLEMENTATION DEFINED resource controls.
NO_IMPL_PART | Meaning |
---|---|
0b0 |
MPAMF_IMPL_IDR defines at least one IMPLEMENTATION DEFINED resource control. |
0b1 |
MPAMF_IMPL_IDR does not define any IMPLEMENTATION DEFINED resource controls. |
If RIS is implemented, this field indicates the presence of IMPLEMENTATION DEFINED resource controls described in MPAMF_IMPL_IDR for the selected resource instance.
Otherwise:
Otherwise:
Reserved, RES0.
Bits [35:33]
Reserved, RES0.
HAS_RIS, bit [32]
When MPAMF_IDR.EXT == 1:
When MPAMF_IDR.EXT == 1:
Has resource instance selector. Indicates that MPAMCFG_PART_SEL contains the RIS field that selects a resource instance to control.
HAS_RIS | Meaning |
---|---|
0b0 |
MPAMCFG_PART_SEL does not implement the MPAMCFG_PART_SEL.RIS field or multiple resource instance suport. |
0b1 |
MPAMCFG_PART_SEL implements the MPAMCFG_PART_SEL.RIS field and MPAM resource instance numbers up to and including MPAMF_IDR.RIS_MAX. |
Otherwise:
Otherwise:
Reserved, RES0.
HAS_PARTID_NRW, bit [31]
Has PARTID narrowing.
HAS_PARTID_NRW | Meaning |
---|---|
0b0 |
Does not have MPAMF_PARTID_NRW_IDR, MPAMCFG_INTPARTID or intPARTID mapping support. |
0b1 |
Supports the MPAMF_PARTID_NRW_IDR, MPAMCFG_INTPARTID registers. |
HAS_MSMON, bit [30]
Has resource monitors. Indicates whether this MSC has MPAM resource monitors.
HAS_MSMON | Meaning |
---|---|
0b0 |
Does not support MPAM resource monitoring by groups or MPAMF_MSMON_IDR. |
0b1 |
Supports resource monitoring by matching a combination of PARTID and PMG. See MPAMF_MSMON_IDR. |
HAS_IMPL_IDR, bit [29]
Has MPAMF_IMPL_IDR. Indicates whether this MSC has the implementation-specific MPAM features register, MPAMF_IMPL_IDR.
HAS_IMPL_IDR | Meaning |
---|---|
0b0 |
Does not have MPAMF_IMPL_IDR. |
0b1 |
Has MPAMF_IMPL_IDR. |
EXT, bit [28]
When FEAT_MPAMv0p1 is implemented or FEAT_MPAMv1p1 is implemented:
When FEAT_MPAMv0p1 is implemented or FEAT_MPAMv1p1 is implemented:
Extended MPAMF_IDR.
EXT | Meaning |
---|---|
0b0 |
MPAMF_IDR has no defined bits in [63:32]. The register is effectively 32 bits. |
0b1 |
MPAMF_IDR has bits defined in [63:32]. The register is 64-bits. |
Otherwise:
Otherwise:
Reserved, RES0.
HAS_PRI_PART, bit [27]
Has priority partitioning. Indicates that MPAM priority partitioning is implemented and MPAMF_PRI_IDR exists.
HAS_PRI_PART | Meaning |
---|---|
0b0 |
Does not support priority partitioning or have MPAMF_PRI_IDR. |
0b1 |
Has priority partitioning and MPAMF_PRI_IDR. |
If RIS is implemented, this field indicates the presence of priority partitioning resource controls as described in MPAMF_PRI_IDR for the selected resource instance.
HAS_MBW_PART, bit [26]
Has memory bandwidth partitioning. Indicates whether this MSC implements MPAM memory bandwidth partitioning and MPAMF_MBW_IDR.
HAS_MBW_PART | Meaning |
---|---|
0b0 |
Does not support memory bandwidth partitioning or have MPAMF_MBW_IDR register. |
0b1 |
Has MPAMF_MBW_IDR register. |
If RIS is implemented, this field indicates the presence of memory bandwidth partitioning resource controls as described in MPAMF_MBW_IDR for the selected resource instance.
HAS_CPOR_PART, bit [25]
Has cache portion partitioning. Indicates whether this MSC implements MPAM cache portion partitioning and MPAMF_CPOR_IDR.
HAS_CPOR_PART | Meaning |
---|---|
0b0 |
Does not support cache portion partitioning or have MPAMF_CPOR_IDR or MPAMCFG_CPBM<n> registers. |
0b1 |
Has MPAMF_CPOR_IDR and MPAMCFG_CPBM<n> registers. |
If RIS is implemented, this field indicates the presence of cache portion partitioning resource controls as described in MPAMF_CPOR_IDR for the selected resource instance.
HAS_CCAP_PART, bit [24]
Has cache capacity partitioning. Indicates whether this MSC implements MPAM cache capacity partitioning and the MPAMF_CCAP_IDR and MPAMCFG_CMAX registers.
HAS_CCAP_PART | Meaning |
---|---|
0b0 |
Does not support cache capacity partitioning or have MPAMF_CCAP_IDR and MPAMCFG_CMAX registers. |
0b1 |
Has MPAMF_CCAP_IDR and MPAMCFG_CMAX registers. |
If RIS is implemented, this field indicates the presence of cache capacity partitioning resource controls as described in MPAMF_CPOR_IDR for the selected resource instance.
PMG_MAX, bits [23:16]
Maximum value of Non-secure PMG supported by this component.
PARTID_MAX, bits [15:0]
Maximum value of Non-secure PARTID supported by this component.
Otherwise: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 HAS_PARTID_NRW HAS_MSMON HAS_IMPL_IDR EXT HAS_PRI_PART HAS_MBW_PART HAS_CPOR_PART HAS_CCAP_PART PMG_MAX PARTID_MAX 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
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 |
HAS_PARTID_NRW | HAS_MSMON | HAS_IMPL_IDR | EXT | HAS_PRI_PART | HAS_MBW_PART | HAS_CPOR_PART | HAS_CCAP_PART | PMG_MAX | PARTID_MAX | ||||||||||||||||||||||
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 |
HAS_PARTID_NRW, bit [31]
Has PARTID narrowing.
HAS_PARTID_NRW | Meaning |
---|---|
0b0 |
Does not have MPAMF_PARTID_NRW_IDR, MPAMCFG_INTPARTID or intPARTID mapping support. |
0b1 |
Supports the MPAMF_PARTID_NRW_IDR, MPAMCFG_INTPARTID registers. |
HAS_MSMON, bit [30]
Has resource monitors. Indicates whether this MSC has MPAM resource monitors.
HAS_MSMON | Meaning |
---|---|
0b0 |
Does not support MPAM resource monitoring by groups or MPAMF_MSMON_IDR. |
0b1 |
Supports resource monitoring by matching a combination of PARTID and PMG. See MPAMF_MSMON_IDR. |
HAS_IMPL_IDR, bit [29]
Has MPAMF_IMPL_IDR. Indicates whether this MSC has the implementation-specific MPAM features register, MPAMF_IMPL_IDR.
HAS_IMPL_IDR | Meaning |
---|---|
0b0 |
Does not have MPAMF_IMPL_IDR. |
0b1 |
Has MPAMF_IMPL_IDR. |
EXT, bit [28]
When FEAT_MPAMv0p1 is implemented or FEAT_MPAMv1p1 is implemented:
When FEAT_MPAMv0p1 is implemented or FEAT_MPAMv1p1 is implemented:
Extended MPAMF_IDR.
EXT | Meaning |
---|---|
0b0 |
MPAMF_IDR has no defined bits in [63:32]. The register is effectively 32 bits. |
0b1 |
MPAMF_IDR has bits defined in [63:32]. The register is 64-bits. |
Otherwise:
Otherwise:
Reserved, RES0.
HAS_PRI_PART, bit [27]
Has priority partitioning. Indicates whether this MSC implements MPAM priority partitioning and MPAMF_PRI_IDR.
HAS_PRI_PART | Meaning |
---|---|
0b0 |
Does not support priority partitioning or have MPAMF_PRI_IDR. |
0b1 |
Has MPAMF_PRI_IDR. |
HAS_MBW_PART, bit [26]
Has memory bandwidth partitioning. Indicates whether this MSC implements MPAM memory bandwidth partitioning and MPAMF_MBW_IDR.
HAS_MBW_PART | Meaning |
---|---|
0b0 |
Does not support memory bandwidth partitioning or have MPAMF_MBW_IDR register. |
0b1 |
Has MPAMF_MBW_IDR register. |
HAS_CPOR_PART, bit [25]
Has cache portion partitioning. Indicates whether this MSC implements MPAM cache portion partitioning and MPAMF_CPOR_IDR.
HAS_CPOR_PART | Meaning |
---|---|
0b0 |
Does not support cache portion partitioning or have MPAMF_CPOR_IDR or MPAMCFG_CPBM<n> registers. |
0b1 |
Has MPAMF_CPOR_IDR and MPAMCFG_CPBM<n> registers. |
HAS_CCAP_PART, bit [24]
Has cache capacity partitioning. Indicates whether this MSC implements MPAM cache capacity partitioning and the MPAMF_CCAP_IDR and MPAMCFG_CMAX registers.
HAS_CCAP_PART | Meaning |
---|---|
0b0 |
Does not support cache capacity partitioning or have MPAMF_CCAP_IDR and MPAMCFG_CMAX registers. |
0b1 |
Has MPAMF_CCAP_IDR and MPAMCFG_CMAX registers. |
PMG_MAX, bits [23:16]
Maximum value of Non-secure PMG supported by this component.
PARTID_MAX, bits [15:0]
Maximum value of Non-secure PARTID supported by this component.
Accessing the MPAMF_IDR
This register is within the MPAM feature page memory frames. In a system that supports Secure and Non-secure memory maps, there must be both Secure and Non-secure MPAM feature pages.
MPAMF_IDR is read-only.
MPAMF_IDR must be readable from the Non-secure and Secure MPAM feature pages.
MPAMF_IDR is permitted to have the same contents when read from either the Secure and Non-secure MPAM feature pages unless the register contents is different for Secure and Non-secure versions, when there must be separate registers in the Secure (MPAMF_IDR_s) and Non-secure (MPAMF_IDR_ns) MPAM feature pages.
When MPAMF_IDR.HAS_RIS is 1, MPAMF_IDR shows the configuration of MSC MPAM for the resource instance selected by MPAMCFG_PART_SEL.RIS. Fields that mention RIS in their field descriptions have values that track the implemented properties of the resource instance. Fields that do not mention RIS are constant across all resource instances.
MPAMF_IDR can be accessed through the memory-mapped interfaces:
Component | Frame | Offset | Instance |
---|---|---|---|
MPAM | MPAMF_BASE_s | 0x0000 | MPAMF_IDR_s |
Accesses on this interface are RO.
Component | Frame | Offset | Instance |
---|---|---|---|
MPAM | MPAMF_BASE_ns | 0x0000 | MPAMF_IDR_ns |
Accesses on this interface are RO.