6#ifndef ZEPHYR_INCLUDE_ARCH_ARM_MPU_ARM_MPU_H_
7#define ZEPHYR_INCLUDE_ARCH_ARM_MPU_ARM_MPU_H_
9#if defined(CONFIG_CPU_CORTEX_M0PLUS) || defined(CONFIG_CPU_CORTEX_M3) || \
10 defined(CONFIG_CPU_CORTEX_M4) || defined(CONFIG_CPU_CORTEX_M7) || defined(CONFIG_ARMV7_R)
12#elif defined(CONFIG_CPU_CORTEX_M23) || defined(CONFIG_CPU_CORTEX_M33) || \
13 defined(CONFIG_CPU_CORTEX_M52) || defined(CONFIG_CPU_CORTEX_M55) || \
14 defined(CONFIG_CPU_CORTEX_M85) || defined(CONFIG_AARCH32_ARMV8_R)
17#error "Unsupported ARM CPU"
20#if defined(CONFIG_ARMV8_M_MAINLINE) || defined(CONFIG_ARMV8_M_BASELINE)
22#define Z_ARM_CPU_HAS_PMSAV8_MPU 1
25#define Z_ARM_CPU_HAS_PMSAV8_MPU 0
28#if defined(CONFIG_ARMV8_M_MAINLINE)
29#define Z_ARM_MPU_MAX_REGIONS 16U
31#define Z_ARM_MPU_MAX_REGIONS 8U
44#if defined(CONFIG_CPU_AARCH32_CORTEX_R)
60#if defined(CONFIG_ARMV7_R)
61#define MPU_REGION_ENTRY(_name, _base, _size, _attr) \
69#define MPU_REGION_ENTRY(_name, _base, _attr) \
69#define MPU_REGION_ENTRY(_name, _base, _attr) \ …
87#if defined(CONFIG_CPU_CORTEX_M)
98struct z_mpu_context_retained {
99 uint32_t rbar[Z_ARM_MPU_MAX_REGIONS];
100 uint32_t rasr_rlar[Z_ARM_MPU_MAX_REGIONS];
101#if Z_ARM_CPU_HAS_PMSAV8_MPU
113void z_arm_save_mpu_context(
struct z_mpu_context_retained *ctx);
120void 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:139
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
uint32_t num_regions
Definition arm_mpu.h:55
const struct arm_mpu_region * mpu_regions
Definition arm_mpu.h:57
uint32_t base
Definition arm_mpu.h:41
const char * name
Definition arm_mpu.h:43
arm_mpu_region_attr_t attr
Definition arm_mpu.h:49