arch: arc: add support of mpu v3

Add support of ARC mpu version 3 which can have region size down to 32
bytes

Signed-off-by: Yuguo Zou <yuguo.zou@synopsys.com>
diff --git a/arch/arc/core/mpu/arc_mpu_v2_internal.h b/arch/arc/core/mpu/arc_mpu_v2_internal.h
index 20f8cea..12b2c64 100644
--- a/arch/arc/core/mpu/arc_mpu_v2_internal.h
+++ b/arch/arc/core/mpu/arc_mpu_v2_internal.h
@@ -17,7 +17,12 @@
 #define AUX_MPU_RDP_SIZE_MASK (0xE03)
 
 /* For MPU version 2, the minimum protection region size is 2048 bytes */
+#if CONFIG_ARC_MPU_VER == 2
 #define ARC_FEATURE_MPU_ALIGNMENT_BITS 11
+/* For MPU version 3, the minimum protection region size is 32 bytes */
+#else
+#define ARC_FEATURE_MPU_ALIGNMENT_BITS 5
+#endif
 
 /**
  * This internal function initializes a MPU region
diff --git a/include/arch/arc/arch.h b/include/arch/arc/arch.h
index 79b8ee1..f576513 100644
--- a/include/arch/arc/arch.h
+++ b/include/arch/arc/arch.h
@@ -66,7 +66,7 @@
 #ifdef CONFIG_ARC_CORE_MPU
 #if CONFIG_ARC_MPU_VER == 2
 #define Z_ARC_MPU_ALIGN	2048
-#elif CONFIG_ARC_MPU_VER == 4
+#elif (CONFIG_ARC_MPU_VER == 3) || (CONFIG_ARC_MPU_VER == 4)
 #define Z_ARC_MPU_ALIGN	32
 #else
 #error "Unsupported MPU version"
diff --git a/include/arch/arc/v2/linker.ld b/include/arch/arc/v2/linker.ld
index 3598eed..13245c7 100644
--- a/include/arch/arc/v2/linker.ld
+++ b/include/arch/arc/v2/linker.ld
@@ -30,7 +30,7 @@
 #ifdef CONFIG_ARC_MPU_ENABLE
 	#if CONFIG_ARC_MPU_VER == 2
 		#define MPU_MIN_SIZE 2048
-	#elif CONFIG_ARC_MPU_VER == 4
+	#elif (CONFIG_ARC_MPU_VER == 3) || (CONFIG_ARC_MPU_VER == 4)
 		#define MPU_MIN_SIZE 32
 	#endif
 	#define MPU_MIN_SIZE_ALIGN . = ALIGN(MPU_MIN_SIZE);