ARM Platforms: Add CASSERT for BL2_BASE
authorSoby Mathew <soby.mathew@arm.com>
Tue, 20 Feb 2018 12:50:47 +0000 (12:50 +0000)
committerSoby Mathew <soby.mathew@arm.com>
Thu, 22 Feb 2018 15:19:03 +0000 (15:19 +0000)
Change-Id: I93e491fde2a991fc39584c2762f33cbea40541e3
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
plat/arm/common/arm_bl2_setup.c

index 5d83118a8030efd09c601a8d0d4702f91532adee..906ed197aba10dbe96752e306f5a392721b77748 100644 (file)
 /* Data structure which holds the extents of the trusted SRAM for BL2 */
 static meminfo_t bl2_tzram_layout __aligned(CACHE_WRITEBACK_GRANULE);
 
+/*
+ * Check that BL2_BASE is atleast a page over ARM_BL_RAM_BASE. The page is for
+ * `meminfo_t` data structure and TB_FW_CONFIG passed from BL1. Not needed
+ * when BL2 is compiled for BL_AT_EL3 as BL2 doesn't need any info from BL1 and
+ * BL2 is loaded at base of usable SRAM.
+ */
+#if BL2_AT_EL3
+#define BL1_MEMINFO_OFFSET     0x0
+#else
+#define BL1_MEMINFO_OFFSET     PAGE_SIZE
+#endif
+
+CASSERT(BL2_BASE >= (ARM_BL_RAM_BASE + BL1_MEMINFO_OFFSET), assert_bl2_base_overflows);
+
 /* Weak definitions may be overridden in specific ARM standard platform */
 #pragma weak bl2_early_platform_setup
 #pragma weak bl2_platform_setup