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: \