CMSIS-Core (Cortex-A): MMU Defines and Structs

| CMSIS-Core (Cortex-A) Version 1.0.0 CMSIS-Core support for Cortex-A processor-based devices

- Main Page
- Usage and Description
- Reference

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations
MMU Defines and Structs
Memory Management Unit Functions

Defines and structures that relate to the Memory Management Unit. More...

## Data Structures
struct | mmu_region_attributes_Type

## Macros
#define | SECTION_DESCRIPTOR (0x2)
#define | SECTION_B_SHIFT (2)
#define | SECTION_C_SHIFT (3)
#define | SECTION_TEX0_SHIFT (12)
#define | SECTION_TEX1_SHIFT (13)
#define | SECTION_TEX2_SHIFT (14)
#define | SECTION_XN_SHIFT (4)
#define | SECTION_DOMAIN_SHIFT (5)
#define | SECTION_P_SHIFT (9)
#define | SECTION_AP_SHIFT (10)
#define | SECTION_AP2_SHIFT (15)
#define | SECTION_S_SHIFT (16)
#define | SECTION_NG_SHIFT (17)
#define | SECTION_NS_SHIFT (19)
#define | PAGE_L1_DESCRIPTOR (0x1)
#define | PAGE_L2_4K_DESC (0x2)
#define | PAGE_L2_64K_DESC (0x1)
#define | PAGE_4K_B_SHIFT (2)
#define | PAGE_4K_C_SHIFT (3)
#define | PAGE_4K_TEX0_SHIFT (6)
#define | PAGE_4K_TEX1_SHIFT (7)
#define | PAGE_4K_TEX2_SHIFT (8)
#define | PAGE_64K_B_SHIFT (2)
#define | PAGE_64K_C_SHIFT (3)
#define | PAGE_64K_TEX0_SHIFT (12)
#define | PAGE_64K_TEX1_SHIFT (13)
#define | PAGE_64K_TEX2_SHIFT (14)
#define | PAGE_B_SHIFT (2)
#define | PAGE_C_SHIFT (3)
#define | PAGE_TEX_SHIFT (12)
#define | PAGE_XN_4K_SHIFT (0)
#define | PAGE_XN_64K_SHIFT (15)
#define | PAGE_DOMAIN_SHIFT (5)
#define | PAGE_P_SHIFT (9)
#define | PAGE_AP_SHIFT (4)
#define | PAGE_AP2_SHIFT (9)
#define | PAGE_S_SHIFT (10)
#define | PAGE_NG_SHIFT (11)
#define | PAGE_NS_SHIFT (3)
#define | OFFSET_1M (0x00100000)
#define | OFFSET_64K (0x00010000)
#define | OFFSET_4K (0x00001000)
#define | DESCRIPTOR_FAULT (0x00000000)
#define | section_normal(descriptor_l1, region)
#define | section_normal_cod(descriptor_l1, region)
#define | section_normal_ro(descriptor_l1, region)
#define | section_normal_rw(descriptor_l1, region)
#define | section_so(descriptor_l1, region)
#define | section_device_ro(descriptor_l1, region)
#define | section_device_rw(descriptor_l1, region)
#define | page4k_device_rw(descriptor_l1, descriptor_l2, region)
#define | page64k_device_rw(descriptor_l1, descriptor_l2, region)

## Enumerations
enum | mmu_region_size_Type { SECTION, PAGE_4k, PAGE_64k }
enum | mmu_memory_Type { NORMAL, DEVICE, SHARED_DEVICE, NON_SHARED_DEVICE, STRONGLY_ORDERED }
enum | mmu_cacheability_Type { NON_CACHEABLE, WB_WA, WT, WB_NO_WA }
enum | mmu_ecc_check_Type { ECC_DISABLED, ECC_ENABLED }
enum | mmu_execute_Type { EXECUTE, NON_EXECUTE }
enum | mmu_global_Type { GLOBAL, NON_GLOBAL }
enum | mmu_shared_Type { NON_SHARED, SHARED }
enum | mmu_secure_Type { SECURE, NON_SECURE }
enum | mmu_access_Type { NO_ACCESS, RW, READ }

## Description

## Macro Definition Documentation

#define DESCRIPTOR_FAULT (0x00000000)

#define OFFSET_1M (0x00100000)

#define OFFSET_4K (0x00001000)

#define OFFSET_64K (0x00010000)

#define page4k_device_rw | ( |  | descriptor_l1,
|  |  | descriptor_l2,
|  |  | region
| ) |  |

#define page64k_device_rw | ( |  | descriptor_l1,
|  |  | descriptor_l2,
|  |  | region
| ) |  |

#define PAGE_4K_B_SHIFT (2)

#define PAGE_4K_C_SHIFT (3)

#define PAGE_4K_TEX0_SHIFT (6)

#define PAGE_4K_TEX1_SHIFT (7)

#define PAGE_4K_TEX2_SHIFT (8)

#define PAGE_64K_B_SHIFT (2)

#define PAGE_64K_C_SHIFT (3)

#define PAGE_64K_TEX0_SHIFT (12)

#define PAGE_64K_TEX1_SHIFT (13)

#define PAGE_64K_TEX2_SHIFT (14)

#define PAGE_AP2_SHIFT (9)

#define PAGE_AP_SHIFT (4)

#define PAGE_B_SHIFT (2)

#define PAGE_C_SHIFT (3)

#define PAGE_DOMAIN_SHIFT (5)

#define PAGE_L1_DESCRIPTOR (0x1)

#define PAGE_L2_4K_DESC (0x2)

#define PAGE_L2_64K_DESC (0x1)

#define PAGE_NG_SHIFT (11)

#define PAGE_NS_SHIFT (3)

#define PAGE_P_SHIFT (9)

#define PAGE_S_SHIFT (10)

#define PAGE_TEX_SHIFT (12)

#define PAGE_XN_4K_SHIFT (0)

#define PAGE_XN_64K_SHIFT (15)

#define SECTION_AP2_SHIFT (15)

#define SECTION_AP_SHIFT (10)

#define SECTION_B_SHIFT (2)

#define SECTION_C_SHIFT (3)

#define SECTION_DESCRIPTOR (0x2)

#define section_device_ro | ( |  | descriptor_l1,
|  |  | region
| ) |  |

#define section_device_rw | ( |  | descriptor_l1,
|  |  | region
| ) |  |

#define SECTION_DOMAIN_SHIFT (5)

#define SECTION_NG_SHIFT (17)

#define section_normal | ( |  | descriptor_l1,
|  |  | region
| ) |  |

#define section_normal_cod | ( |  | descriptor_l1,
|  |  | region
| ) |  |

#define section_normal_ro | ( |  | descriptor_l1,
|  |  | region
| ) |  |

#define section_normal_rw | ( |  | descriptor_l1,
|  |  | region
| ) |  |

#define SECTION_NS_SHIFT (19)

#define SECTION_P_SHIFT (9)

#define SECTION_S_SHIFT (16)

#define section_so | ( |  | descriptor_l1,
|  |  | region
| ) |  |

#define SECTION_TEX0_SHIFT (12)

#define SECTION_TEX1_SHIFT (13)

#define SECTION_TEX2_SHIFT (14)

#define SECTION_XN_SHIFT (4)

## Enumeration Type Documentation

enum mmu_access_Type

Enumerator
NO_ACCESS |
RW |
READ |

enum mmu_cacheability_Type

Enumerator
NON_CACHEABLE |
WB_WA |
WT |
WB_NO_WA |

enum mmu_ecc_check_Type

Enumerator
ECC_DISABLED |
ECC_ENABLED |

enum mmu_execute_Type

Enumerator
EXECUTE |
NON_EXECUTE |

enum mmu_global_Type

Enumerator
GLOBAL |
NON_GLOBAL |

enum mmu_memory_Type

Enumerator
NORMAL |
DEVICE |
SHARED_DEVICE |
NON_SHARED_DEVICE |
STRONGLY_ORDERED |

enum mmu_region_size_Type

Enumerator
SECTION |
PAGE_4k |
PAGE_64k |

enum mmu_secure_Type

Enumerator
SECURE |
NON_SECURE |

enum mmu_shared_Type

Enumerator
NON_SHARED |
SHARED |