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); /*