6#ifndef ZEPHYR_INCLUDE_ARCH_ARM_MPU_ARM_MPU_H_
7#define ZEPHYR_INCLUDE_ARCH_ARM_MPU_ARM_MPU_H_
9#if defined(CONFIG_ARMV8_M_MAINLINE) || defined(CONFIG_ARMV8_M_BASELINE) || \
10 defined(CONFIG_AARCH32_ARMV8_R)
12#define Z_ARM_CPU_HAS_PMSAV8_MPU 1
16#define Z_ARM_CPU_HAS_PMSAV8_MPU 0
20#if defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE) || defined(CONFIG_ARMV8_M_MAINLINE)
21#define Z_ARM_MPU_MAX_REGIONS 16U
23#define Z_ARM_MPU_MAX_REGIONS 8U
36#if defined(CONFIG_CPU_AARCH32_CORTEX_R)
52#if defined(CONFIG_ARMV7_R)
53#define MPU_REGION_ENTRY(_name, _base, _size, _attr) \
61#define MPU_REGION_ENTRY(_name, _base, _attr) \
79#if defined(CONFIG_CPU_CORTEX_M)
90struct z_mpu_context_retained {
91 uint32_t rbar[Z_ARM_MPU_MAX_REGIONS];
92 uint32_t rasr_rlar[Z_ARM_MPU_MAX_REGIONS];
93#if Z_ARM_CPU_HAS_PMSAV8_MPU
105void z_arm_save_mpu_context(
struct z_mpu_context_retained *ctx);
112void z_arm_restore_mpu_context(
const struct z_mpu_context_retained *ctx);
struct arc_mpu_config mpu_config
struct arm_mpu_region_attr arm_mpu_region_attr_t
Definition arm_mpu_v7m.h:152
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
uint32_t num_regions
Definition arm_mpu.h:47
const struct arm_mpu_region * mpu_regions
Definition arm_mpu.h:49
uint32_t base
Definition arm_mpu.h:33
const char * name
Definition arm_mpu.h:35
arm_mpu_region_attr_t attr
Definition arm_mpu.h:41