|
Zephyr Project API 4.0.0
A Scalable Open Source RTOS
|
#include <stdint.h>Go to the source code of this file.
Data Structures | |
| struct | xtensa_mmu_range |
| Struct used to map a memory region. More... | |
Macros | |
| #define | XTENSA_MMU_MAP_USER BIT(4) |
| Software only bit to indicate a memory region can be accessed by user thread(s). | |
| #define | XTENSA_MMU_MAP_SHARED BIT(30) |
| Software only bit to indicate a memory region is shared by all threads. | |
Memory region permission and caching mode. | |
| #define | XTENSA_MMU_PERM_X BIT(0) |
| Memory region is executable. | |
| #define | XTENSA_MMU_PERM_W BIT(1) |
| Memory region is writable. | |
| #define | XTENSA_MMU_PERM_WX (XTENSA_MMU_PERM_W | XTENSA_MMU_PERM_X) |
| Memory region is both executable and writable. | |
| #define | XTENSA_MMU_CACHED_WB BIT(2) |
| Memory region has write-back cache. | |
| #define | XTENSA_MMU_CACHED_WT BIT(3) |
| Memory region has write-through cache. | |
Functions | |
| void | xtensa_mmu_init (void) |
| Initialize hardware MMU. | |
| void | xtensa_mmu_reinit (void) |
| Re-initialize hardware MMU. | |
| void | xtensa_mmu_tlb_ipi (void) |
| Tell other processors to flush TLBs. | |
| void | xtensa_mmu_tlb_shootdown (void) |
| Invalidate cache to page tables and flush TLBs. | |
Variables | |
| const struct xtensa_mmu_range | xtensa_soc_mmu_ranges [] |
| Additional memory regions required by SoC. | |
| int | xtensa_soc_mmu_ranges_num |
| Number of SoC additional memory regions. | |
Memory domain and partitions | |
| #define | K_MEM_PARTITION_IS_EXECUTABLE(attr) (((attr) & XTENSA_MMU_PERM_X) != 0) |
| #define | K_MEM_PARTITION_IS_WRITABLE(attr) (((attr) & XTENSA_MMU_PERM_W) != 0) |
| #define | K_MEM_PARTITION_IS_USER(attr) (((attr) & XTENSA_MMU_MAP_USER) != 0) |
| #define | K_MEM_PARTITION_P_RW_U_RW ((k_mem_partition_attr_t) {XTENSA_MMU_PERM_W | XTENSA_MMU_MAP_USER}) |
| #define | K_MEM_PARTITION_P_RW_U_NA ((k_mem_partition_attr_t) {0}) |
| #define | K_MEM_PARTITION_P_RO_U_RO ((k_mem_partition_attr_t) {XTENSA_MMU_MAP_USER}) |
| #define | K_MEM_PARTITION_P_RO_U_NA ((k_mem_partition_attr_t) {0}) |
| #define | K_MEM_PARTITION_P_NA_U_NA ((k_mem_partition_attr_t) {0}) |
| #define | K_MEM_PARTITION_P_RX_U_RX ((k_mem_partition_attr_t) {XTENSA_MMU_PERM_X}) |
| typedef uint32_t | k_mem_partition_attr_t |