For more details and example usage, see MMU for ARMv8 (ARM A53)
|
enum | MmuP_AccessPerm { MMUP_ACCESS_PERM_PRIV_RW_USER_NONE = 0x0,
MMUP_ACCESS_PERM_PRIV_RW_USER_RW = 0x1,
MMUP_ACCESS_PERM_PRIV_RO_USER_NONE = 0x2,
MMUP_ACCESS_PERM_PRIV_RO_USER_RO = 0x3
} |
| Enum's to represent different types of access permissions that are possible for a given MMU region. More...
|
|
enum | MmuP_Shareable { MMUP_SHARABLE_NONE = 0x0,
MMUP_SHARABLE_OUTER = 0x2,
MMUP_SHARABLE_INNER = 0x3
} |
| Enum's to represent MMU region sharable status. More...
|
|
enum | MmuP_AttrIndx {
MMUP_ATTRINDX_MAIR0 = 0,
MMUP_ATTRINDX_MAIR1,
MMUP_ATTRINDX_MAIR2,
MMUP_ATTRINDX_MAIR3,
MMUP_ATTRINDX_MAIR4,
MMUP_ATTRINDX_MAIR5,
MMUP_ATTRINDX_MAIR6,
MMUP_ATTRINDX_MAIR7
} |
| Enum's to represent MMU attribute index. More...
|
|
◆ MmuP_AccessPerm
Enum's to represent different types of access permissions that are possible for a given MMU region.
Enumerator |
---|
MMUP_ACCESS_PERM_PRIV_RW_USER_NONE | RW Permission in privileged mode only
|
MMUP_ACCESS_PERM_PRIV_RW_USER_RW | RW Permission in privileged and user mode
|
MMUP_ACCESS_PERM_PRIV_RO_USER_NONE | RD Permission for privileged mode and access bllocked for user mode
|
MMUP_ACCESS_PERM_PRIV_RO_USER_RO | All access are blocked
|
◆ MmuP_Shareable
Enum's to represent MMU region sharable status.
Enumerator |
---|
MMUP_SHARABLE_NONE | Not shareable
|
MMUP_SHARABLE_OUTER | Outer shareable
|
MMUP_SHARABLE_INNER | Inner shareable
|
◆ MmuP_AttrIndx
Enum's to represent MMU attribute index.
Enumerator |
---|
MMUP_ATTRINDX_MAIR0 | |
MMUP_ATTRINDX_MAIR1 | |
MMUP_ATTRINDX_MAIR2 | |
MMUP_ATTRINDX_MAIR3 | |
MMUP_ATTRINDX_MAIR4 | |
MMUP_ATTRINDX_MAIR5 | |
MMUP_ATTRINDX_MAIR6 | |
MMUP_ATTRINDX_MAIR7 | |
◆ MmuP_MapAttrs_init()
Set default values to MmuP_MapAttrs.
Strongly recommended to be called before seting values in MmuP_MapAttrs
- Parameters
-
attrs | [out] parameter structure to set to default |
◆ MmuP_enable()
void MmuP_enable |
( |
void |
| ) |
|
◆ MmuP_disable()
void MmuP_disable |
( |
void |
| ) |
|
◆ MmuP_isEnabled()
uint32_t MmuP_isEnabled |
( |
void |
| ) |
|
Check if MMU sub-system is enabled.
- Returns
- 0: MMU sub-system is disabled, 1: MMU sub-system is enabled
◆ MmuP_map()
int32_t MmuP_map |
( |
uintptr_t |
vaddr, |
|
|
uintptr_t |
paddr, |
|
|
uint32_t |
size, |
|
|
MmuP_MapAttrs * |
mapAttrs |
|
) |
| |
Setup a region in the MMU.
- Note
- Recommended to disable MMU and disable cache before setting up MMU regions
- Parameters
-
vaddr | [in] virtual address of region to setup, MUST aligned to granule size |
paddr | [in] physical address of region to setup, MUST aligned to granule size |
size | [in] region size, MUST aligned to granule size |
mapAttrs | [in] map attrs, see MmuP_MapAttrs |
◆ MmuP_init()
Initialize MMU sub-system, called by SysConfig, not to be called by end users.