SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
Active memory protection is a feature that allows or prevents read and write accesses to the EDMA_TPCC registers. Active memory protection is achieved by a set of memory protection permissions attribute EDMA_TPCC_MPPAN_k registers.
The EDMA_TPCC register map is divided into three categories:
Each shadow region consists of the respective shadow region registers and the associated PaRAM. For more detailed information regarding the contents of a shadow region, refer to Table 16-80 EDMA_TPCC Registers Mapping Summary.
Each of the eight shadow regions has an associated EDMA_TPCC_MPPAN_k registers that defines the specific requestor(s) and types of requests that are allowed to the regions resources.
The global channel region is also protected with a memory-mapped register EDMA_TPCC_MPPAG. The EDMA_TPCC_MPPAG applies to the global region and to the global channel region, except the other EDMA_TPCC_MPPAN_k registers themselves.
Table 16-70 shows the accesses that are allowed or not allowed to the EDMA_TPCC_MPPAG and EDMA_TPCC_MPPAN_k. The active memory protection uses the EDMA_TPCC_OPT_n[31] PRIV and EDMA_TPCC_OPT_n[27:24] PRIVID attributes of the EDMA peripheral modules. TheEDMA_TPCC_OPT_n[31] PRIV is the privilege level (i.e., user vs. supervisor).
The EDMA_TPCC_OPT_n[27:24] PRIVID refers to a privilege ID with a number that is associated with an EDMA peripheral modules.
Access | Supervisor | User |
---|---|---|
Read | Yes | Yes |
Write | Yes | No |
Table 16-71 describes the EDMA_TPCC_MPPAN_k register mapping for the shadow regions (which includes shadow region registers and PaRAM addresses).
The region-based EDMA_TPCC_MPPAN_k registers are used to protect accesses to the DMA shadow regions and the associated region PaRAM. Because there are eight regions, there are eight EDMA_TPCC_MPPAN_k region registers (MPPA[0-7]).
Register | Registers Protect | Address Range | PaRAM Protect(1) | Address Range |
---|---|---|---|---|
EDMA_TPCC_MPPAG | Global Range | 0000h-1FFCh | N/A | N/A |
EDMA_TPCC_MPPAN_k. MPPAN_0 | DMA Shadow 0 | 2000h-21FCh | 1st octant | 4000h-47FCh |
MPPAN_1 | DMA Shadow 1 | 2200h-23FCh | 2nd octant | 4800h-4FFCh |
MPPAN_2 | DMA Shadow 2 | 2400h-25FCh | 3rd octant | 5000h-57FCh |
MPPAN_3 | DMA Shadow 3 | 2600h-27FCh | 4th octant | 5800h-5FFCh |
MPPAN_4 | DMA Shadow 4 | 2800h-29FCh | 5th octant | 6000h-67FCh |
MPPAN_5 | DMA Shadow 5 | 2A00h-2BFCh | 6th octant | 6800h-6FFCh |
MPPAN_6 | DMA Shadow 6 | 2C00h-2DFCh | 7th octant | 7000h-77FCh |
MPPAN_7 | DMA Shadow 7 | 2E00h-2FFCh | 8th octant | 7800h-7FFCh |
Example Access denied.
Write access to shadow region 7's event enable set register EDMA_TPCC_EESR:
The EDMA_TPCC_EER is a read-only register and the only way that write to it is by writing to the EDMA_TPCC_EESR. There is only one physical register for EDMA_TPCC_EER, EDMA_TPCC_EESR, etc. and that the shadow regions only provide to the same physical set.
Register | Value | Description |
---|---|---|
EDMA_TPCC_EER (offset 0x1020) | 0x0000 0000 | Value in EDMA_TPCC_EER to begin with. |
EDMA_TPCC_EESR (offset 0x2E30) | 0xFF00 FF00 ↓ | Value attempted to be written to shadow region 7's EDMA_TPCC_EESR. This is done by an EDMA connected device module with a privilege level of User and Privilege ID of 0. |
EDMA_TPCC_MPPAN_k (offset 0x082C) | 0x0000 04B0 | Memory Protection Filter EDMA_TPCC_MPPAN_k[10] AID0 = 1, EDMA_TPCC_MPPAN_k[1] UW = 0, EDMA_TPCC_MPPAN_k[2] UR = 0, EDMA_TPCC_MPPAN_k[4] SW = 1, EDMA_TPCC_MPPAN_k[5] SR = 1. |
X | Access Denied | |
EDMA_TPCC_EER (offset 0x1020) | 0x0000 0000 | Final value of EDMA_TPCC_EER |
Example Access Allowed
Write access to shadow region 7's event enable set register EDMA_TPCC_EESR:
The EDMA_TPCC_EER is a read-only register and the only way that write to it is by writing to the EDMA_TPCC_EESR. There is only one physical register for EDMA_TPCC_EER, EDMA_TPCC_EESR, etc. and that the shadow regions only provide to the same physical set.
Register | Value | Description |
---|---|---|
EDMA_TPCC_EER (offset 0x1020) | 0x0000 0000 | Value in EER to begin with. |
EDMA_TPCC_EESR (offset 0x2E30) | 0xFF00 FF00 | Value attempted to be written to shadow region 7's EESR. This is done by an EDMA peripheral module with a privilege level of User and Privilege ID of 0. |
EDMA_TPCC_MPPAN_k. EDMA_TPCC_MPPAN_7 (offset 0x082C) | 0x0000 04B3 | Memory Protection Filter EDMA_TPCC_MPPAN_k[10] AID = 1, EDMA_TPCC_MPPAN_k. EDMA_TPCC_MPPAN_7[1] UW = 1, EDMA_TPCC_MPPAN_k. EDMA_TPCC_MPPAN_7[2] UR = 1, EDMA_TPCC_MPPAN_k. EDMA_TPCC_MPPAN_7[4] SW = 1, EDMA_TPCC_MPPAN_k. EDMA_TPCC_MPPAN_7[5] SR = 1. |
√ ↓ | Access allowed. | |
EDMA_TPCC_DRAEM_k. EDMA_TPCC_DRAEM_7 (offset 0x0378) | 0x9FF0 0FC2 ↓ | DMA Region Access Enable Filter |
EDMA_TPCC_EESR (offset 0x2E30) | 0x8BC0 0102 ↓ | Value written to shadow region 7's EESR. This is done by an EDMA peripheral module with a privilege level of User and a Privilege ID of 0. |
EDMA_TPCC_EER (offset 0x1020) | ↓ 0xBC0 0102 | Final value of EER. |