diff --git a/arch/arc/core/mpu/Kconfig b/arch/arc/core/mpu/Kconfig index 38b9c58542f..3b66af2bd07 100644 --- a/arch/arc/core/mpu/Kconfig +++ b/arch/arc/core/mpu/Kconfig @@ -5,12 +5,12 @@ config ARC_MPU_VER int "ARC MPU version" - range 2 6 + range 2 8 default 2 help ARC MPU has several versions. For MPU v2, the minimum region is 2048 bytes; For other versions, the minimum region is 32 bytes; v4 has secure features, - v6 supports up to 32 regions. + v6 supports up to 32 regions. Note: MPU v5 & v7 are not supported. config ARC_CORE_MPU bool "ARC Core MPU functionalities" diff --git a/arch/arc/core/mpu/arc_mpu.c b/arch/arc/core/mpu/arc_mpu.c index cbd162e642a..b1d3f0f1927 100644 --- a/arch/arc/core/mpu/arc_mpu.c +++ b/arch/arc/core/mpu/arc_mpu.c @@ -51,7 +51,7 @@ static inline uint32_t get_region_attr_by_type(uint32_t type) } } -#if CONFIG_ARC_MPU_VER == 4 +#if (CONFIG_ARC_MPU_VER == 4) || (CONFIG_ARC_MPU_VER == 8) #include "arc_mpu_v4_internal.h" #else #include "arc_mpu_common_internal.h" diff --git a/include/zephyr/arch/arc/arch.h b/include/zephyr/arch/arc/arch.h index dae82ceedf2..29a9959ae86 100644 --- a/include/zephyr/arch/arc/arch.h +++ b/include/zephyr/arch/arc/arch.h @@ -115,7 +115,8 @@ BUILD_ASSERT(CONFIG_ARC_EXCEPTION_STACK_SIZE % ARCH_STACK_PTR_ALIGN == 0, #ifdef CONFIG_ARC_CORE_MPU #if CONFIG_ARC_MPU_VER == 2 #define Z_ARC_MPU_ALIGN 2048 -#elif (CONFIG_ARC_MPU_VER == 3) || (CONFIG_ARC_MPU_VER == 4) || (CONFIG_ARC_MPU_VER == 6) +#elif (CONFIG_ARC_MPU_VER == 3) || (CONFIG_ARC_MPU_VER == 4) || \ + (CONFIG_ARC_MPU_VER == 6) || (CONFIG_ARC_MPU_VER == 8) #define Z_ARC_MPU_ALIGN 32 #else #error "Unsupported MPU version" diff --git a/include/zephyr/arch/arc/v2/linker.ld b/include/zephyr/arch/arc/v2/linker.ld index 9c0e53f92c1..f172c16cfa3 100644 --- a/include/zephyr/arch/arc/v2/linker.ld +++ b/include/zephyr/arch/arc/v2/linker.ld @@ -30,7 +30,8 @@ #ifdef CONFIG_ARC_MPU_ENABLE #if CONFIG_ARC_MPU_VER == 2 #define MPU_MIN_SIZE 2048 - #elif (CONFIG_ARC_MPU_VER == 3) || (CONFIG_ARC_MPU_VER == 4) || (CONFIG_ARC_MPU_VER == 6) + #elif (CONFIG_ARC_MPU_VER == 3) || (CONFIG_ARC_MPU_VER == 4) || \ + (CONFIG_ARC_MPU_VER == 6) || (CONFIG_ARC_MPU_VER == 8) #define MPU_MIN_SIZE 32 #endif #define MPU_MIN_SIZE_ALIGN . = ALIGN(MPU_MIN_SIZE);