diff --git a/arch/arm/core/cortex_m/mpu/Kconfig b/arch/arm/core/cortex_m/mpu/Kconfig index dfdddc45101..6e82374b9ca 100644 --- a/arch/arm/core/cortex_m/mpu/Kconfig +++ b/arch/arm/core/cortex_m/mpu/Kconfig @@ -41,7 +41,7 @@ config NXP_MPU config MPU_ALLOW_FLASH_WRITE bool "Add MPU access to write to flash" - depends on NXP_MPU + depends on ARM_MPU || NXP_MPU default n help Enable this to allow MPU RWX access to flash memory diff --git a/include/arch/arm/cortex_m/mpu/arm_mpu.h b/include/arch/arm/cortex_m/mpu/arm_mpu.h index 86145e050e6..b557b4a1be4 100644 --- a/include/arch/arm/cortex_m/mpu/arm_mpu.h +++ b/include/arch/arm/cortex_m/mpu/arm_mpu.h @@ -89,8 +89,14 @@ struct arm_mpu { #define REGION_RAM_ATTR(size) \ (NORMAL_OUTER_INNER_NON_CACHEABLE_NON_SHAREABLE | \ NOT_EXEC | size | FULL_ACCESS) +#if defined(CONFIG_MPU_ALLOW_FLASH_WRITE) +#define REGION_FLASH_ATTR(size) \ + (NORMAL_OUTER_INNER_NON_CACHEABLE_NON_SHAREABLE | size | \ + P_RW_U_RO) +#else #define REGION_FLASH_ATTR(size) \ (NORMAL_OUTER_INNER_NON_CACHEABLE_NON_SHAREABLE | size | RO) +#endif #define REGION_PPB_ATTR(size) (STRONGLY_ORDERED_SHAREABLE | size | FULL_ACCESS) #define REGION_IO_ATTR(size) (DEVICE_NON_SHAREABLE | size | FULL_ACCESS)