MPU functions provides access to MPU operations such as enable MPU, disable MPU and set attribute for section of memory.
Boot code invokes Init_MPU function to configure the MPU. A total of 10 MPU regions are allocated with another 6 being free for users. Overview of the memory attributes for different MPU regions is as given below,
Memory Range | Attributes of MPURegion | |
---|---|---|
DDR | 0x00000000 - 0x7FFFFFFF | Normal write-back Cacheable |
PL | 0x80000000 - 0xBFFFFFFF | Strongly Ordered |
QSPI | 0xC0000000 - 0xDFFFFFFF | Device Memory |
PCIe | 0xE0000000 - 0xEFFFFFFF | Device Memory |
STM_CORESIGHT | 0xF8000000 - 0xF8FFFFFF | Device Memory |
RPU_R5_GIC | 0xF9000000 - 0xF90FFFFF | Device memory |
FPS | 0xFD000000 - 0xFDFFFFFF | Device Memory |
LPS | 0xFE000000 - 0xFFFFFFFF | Device Memory |
OCM | 0xFFFC0000 - 0xFFFFFFFF | Normal write-back Cacheable |
Note: For a system where DDR is less than 2GB, region after DDR and before PL is marked as undefined in translation table. Memory range 0xFE000000-0xFEFFFFFF is allocated for upper LPS slaves, where as memory region 0xFF000000-0xFFFFFFFF is allocated for lower LPS slaves.
Type | Name | Arguments |
---|---|---|
void | Xil_SetTlbAttributes |
|
void | Xil_EnableMPU |
|
void | Xil_DisableMPU |
|
u32 | Xil_SetMPURegion |
|
u32 | Xil_UpdateMPUConfig |
|
void | Xil_GetMPUConfig |
|
u32 | Xil_GetNumOfFreeRegions |
|
u32 | Xil_GetNextMPURegion |
|
u32 | Xil_DisableMPURegionByRegNum |
|
u16 | Xil_GetMPUFreeRegMask |
|
u32 | Xil_SetMPURegionByRegNum |
|
void * | Xil_MemMap |
|