| |||
| Home > System Control > Register descriptions > Memory Model Feature Registers | |||
There are four Memory Model Feature Registers, MMFR0 to MMFR3. They are described in the following subsections:
The ID_MMFR0 characteristics are:
The ID_MMFR0 provides information about the memory model, memory management, and cache support operations of the processor.
The ID_MMFR0 is:
a read-only register
accessible in Privileged mode only.
Available in all processor configurations.
See Table 4.11.
Figure 4.15 shows the ID_MMFR0 bit assignments.
Table 4.11 shows the ID_MMFR0 bit assignments.
Table 4.11. ID_MMFR0 bit assignments
| Bits | Name | Function |
|---|---|---|
| [31:28] | Innermost shareability | Indicates the innermost shareability domain implemented. RAZ/Unknown because only one shareability domain is implemented, see [15:12]. |
| [27:24] | FCSE | Indicates support for Fast Context Switch Extension (FCSE).
|
| [23:20] | Auxiliary Registers | Indicates support for the auxiliary registers.
|
| [19:16] | TCM support | Indicates support for TCM and associated DMA.
|
| [15:12] | Shareability levels | Indicates the number of shareability levels implemented.
|
| [11:8] | Outermost shareability | Indicates the outermost shareability domain implemented.
|
| [7:4] | PMSA | Indicates support for Physical Memory System Architecture (PMSA).
|
| [3:0] | VMSA | Indicates support for Virtual Memory System Architecture (VMSA).
|
To access the ID_MMFR0 read CP15 with:
MRC p15, 0, <Rd>, c0, c1, 4 ; Read ID_MMFR0
The ID_MMFR1 Register characteristics are:
Provides information about the memory model, memory management, and cache support of the processor.
The ID_MMFR1 is:
a read-only register
accessible in Privileged mode only.
Available in all processor configurations.
See Table 4.12.
Figure 4.16 shows the ID_MMFR1 bit assignments.
Table 4.12 shows the ID_MMFR1 bit assignments.
Table 4.12. ID_MMFR1 bit assignments
Bits | Name | Function |
|---|---|---|
| [31:28] | Branch predictor | Indicates Branch Predictor management requirements.
|
| [27:24] | L1 test clean operations | Indicates support for test and clean operations on data cache, Harvard or unified architecture.
|
| [23:20] | L1 cache maintenance operations (unified) | Indicates support for L1 cache, entire cache maintenance operations, unified architecture.
|
| [19:16] | L1 cache maintenance operations (Harvard) | Indicates support for L1 cache, entire cache maintenance operations, Harvard architecture.
|
| [15:12] | L1 cache line maintenance operations - Set and Way (unified) | Indicates support for L1 cache line maintenance operations by Set and Way, unified architecture.
|
| [11:8] | L1 cache line maintenance operations - Set and Way (Harvard) | Indicates support for L1 cache line maintenance operations by Set and Way, Harvard architecture.
|
| [7:4] | L1 cache line maintenance operations - MVA (unified) | Indicates support for L1 cache line maintenance operations by address, unified architecture.
|
| [3:0] | L1 cache line maintenance operations - MVA (Harvard) | Indicates support for L1 cache line maintenance operations by address, Harvard architecture.
|
To access the ID_MMFR1 read CP15 with:
MRC p15, 0, <Rd>, c0, c1, 5 ; Read ID_MMFR1
The ID_MMFR2 characteristics are:
The ID_MMFR2 provides information about the memory model, memory management, and cache support operations of the processor.
The ID_MMFR2 is:
a read-only register
accessible in Privileged mode only.
Available in all processor configurations.
See Table 4.13.
Figure 4.17 shows the ID_MMFR2 bit assignments.
Table 4.13 shows the ID_MMFR2 bit assignments.
Table 4.13. ID_MMFR2 bit assignments
Bits | Name | Function |
|---|---|---|
| [31:28] | Hardware access flag | Indicates support for Hardware Access Flag.
|
| [27:24] | WFI | Indicates support for Wait-For-Interrupt stalling.
|
| [23:20] | Memory barrier | Indicates support for memory barrier operations.
|
| [19:16] | TLB maintenance operations (unified) | Indicates support for TLB maintenance operations, unified architecture.
|
| [15:12] | TLB maintenance operations (Harvard) | Indicates support for TLB maintenance operations, Harvard architecture.
|
| [11:8] | L1 cache maintenance range operations (Harvard) | Indicates support for cache maintenance range operations, Harvard architecture.
|
| [7:4] | L1 background prefetch cache operations | Indicates support for background prefetch cache range operations, Harvard architecture.
|
| [3:0] | L1 foreground prefetch cache operations | Indicates support for foreground prefetch cache range operations, Harvard architecture.
|
To access the ID_MMFR2 read CP15 with:
MRC p15, 0, <Rd>, c0, c1, 6 ; Read ID_MMFR2
The ID_MMFR3 characteristics are:
Provides information about the two cache line maintenance operations for the processor.
The ID_MMFR3 is:
a read-only register
accessible in Privileged mode only.
Available in all processor configurations.
See Table 4.14.
Figure 4.18 shows the ID_MMFR3 bit assignments.
Table 4.14 shows the ID_MMFR3 bit assignments.
Table 4.14. ID_MMFR3 bit assignments
Bits | Name | Function |
|---|---|---|
| [31:28] | Supersection support | RAZ because this is a PMSA implementation. |
| [27:24] | - | SBZ |
| [23:20] | Coherent walk | RAZ because this is a PMSA implementation. |
| [19:16] | - | SBZ |
| [15:12] | Maintenance broadcast | Indicates whether cache maintenance operations are broadcast.
|
| [11:8] | Branch predictor maintenance operations | Indicates support for branch predictor maintenance operations in systems with hierarchical cache maintenance operations.
|
| [7:4] | Hierarchical cache maintenance operations by Set and Way | Indicates support for hierarchical cache maintenance operations by Set and Way.
|
| [3:0] | Hierarchical cache maintenance operations by MVA | Indicates support for hierarchical cache maintenance operations by address.
|
[a] Both of these operations are NOP on Cortex-R5. | ||
To access the ID_MMFR3 read CP15 with:
MRC p15, 0, <Rd>, c0, c1, 7 ; Read ID_MMFR3