Merge pull request #1380 from CJKay/mmap-fix

Fix incorrect number of reserved memory map entries for Arm platforms
diff --git a/include/plat/arm/common/arm_def.h b/include/plat/arm/common/arm_def.h
index d10afae..4473b53 100644
--- a/include/plat/arm/common/arm_def.h
+++ b/include/plat/arm/common/arm_def.h
@@ -245,10 +245,16 @@
  * The number of regions like RO(code), coherent and data required by
  * different BL stages which need to be mapped in the MMU.
  */
-#if USE_COHERENT_MEM
-#define ARM_BL_REGIONS			3
+#if ENABLE_SPM && defined(IMAGE_BL31)
+# if USE_COHERENT_MEM
+#  define ARM_BL_REGIONS		5
+# else
+#  define ARM_BL_REGIONS		4
+# endif
+#elif USE_COHERENT_MEM
+# define ARM_BL_REGIONS			4
 #else
-#define ARM_BL_REGIONS			2
+# define ARM_BL_REGIONS			3
 #endif
 
 #define MAX_MMAP_REGIONS		(PLAT_ARM_MMAP_ENTRIES +	\
diff --git a/include/plat/arm/common/plat_arm.h b/include/plat/arm/common/plat_arm.h
index 612a63a..fc3f4ec 100644
--- a/include/plat/arm/common/plat_arm.h
+++ b/include/plat/arm/common/plat_arm.h
@@ -59,9 +59,11 @@
 		PLAT_ARM_TZC_NS_DEV_ACCESS}
 #endif
 
-#define ARM_CASSERT_MMAP						\
-	CASSERT((ARRAY_SIZE(plat_arm_mmap) + ARM_BL_REGIONS)		\
-		<= MAX_MMAP_REGIONS,					\
+#define ARM_CASSERT_MMAP						  \
+	CASSERT((ARRAY_SIZE(plat_arm_mmap) - 1) <= PLAT_ARM_MMAP_ENTRIES, \
+		assert_plat_arm_mmap_mismatch);				  \
+	CASSERT((PLAT_ARM_MMAP_ENTRIES + ARM_BL_REGIONS)		  \
+		<= MAX_MMAP_REGIONS,					  \
 		assert_max_mmap_regions);
 
 /*