From 85f591e86605dd0330288cc62f9bd039e2ada1b2 Mon Sep 17 00:00:00 2001 From: Wayne Ren Date: Thu, 28 Nov 2019 16:27:59 +0800 Subject: [PATCH] arch: arc: enable MPU_REQUIRES_NON_OVERLAPPING_REGIONS for arc mpu ver 3 arc mpu ver3 does not allow mpu region overlap, so need to enable MPU_REQUIRES_NON_OVERLAPPING_REGIONS. Signed-off-by: Wayne Ren --- arch/arc/core/mpu/Kconfig | 1 + include/arch/arc/arch.h | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arc/core/mpu/Kconfig b/arch/arc/core/mpu/Kconfig index 07f2256a2fd..90674830a1f 100644 --- a/arch/arc/core/mpu/Kconfig +++ b/arch/arc/core/mpu/Kconfig @@ -29,5 +29,6 @@ config ARC_MPU select THREAD_STACK_INFO select MEMORY_PROTECTION select MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT if ARC_MPU_VER = 2 + select MPU_REQUIRES_NON_OVERLAPPING_REGIONS if ARC_MPU_VER = 3 help Target has ARC MPU (currently only works for EMSK 2.2/2.3 ARCEM7D) diff --git a/include/arch/arc/arch.h b/include/arch/arc/arch.h index f3d252e8d3e..a2676eb5513 100644 --- a/include/arch/arc/arch.h +++ b/include/arch/arc/arch.h @@ -188,8 +188,7 @@ extern "C" { #define K_MEM_PARTITION_IS_WRITABLE(attr) \ ({ \ int __is_writable__; \ - attr &= (AUX_MPU_ATTR_UW | AUX_MPU_ATTR_KW); \ - switch (attr) { \ + switch (attr & (AUX_MPU_ATTR_UW | AUX_MPU_ATTR_KW)) { \ case (AUX_MPU_ATTR_UW | AUX_MPU_ATTR_KW): \ case AUX_MPU_ATTR_UW: \ case AUX_MPU_ATTR_KW: \