diff --git a/bl1/bl1_main.c b/bl1/bl1_main.c
index 6771142..897660c 100644
--- a/bl1/bl1_main.c
+++ b/bl1/bl1_main.c
@@ -65,6 +65,38 @@
 		bl2_ep->args.arg7);
 }
 
+/*******************************************************************************
+ * The next function has a weak definition. Platform specific code can override
+ * it if it wishes to.
+ ******************************************************************************/
+#pragma weak bl1_init_bl2_mem_layout
+
+/*******************************************************************************
+ * Function that takes a memory layout into which BL2 has been loaded and
+ * populates a new memory layout for BL2 that ensures that BL1's data sections
+ * resident in secure RAM are not visible to BL2.
+ ******************************************************************************/
+void bl1_init_bl2_mem_layout(const meminfo_t *bl1_mem_layout,
+			     meminfo_t *bl2_mem_layout)
+{
+	const size_t bl1_size = BL1_RAM_LIMIT - BL1_RAM_BASE;
+
+	assert(bl1_mem_layout != NULL);
+	assert(bl2_mem_layout != NULL);
+
+	/* Check that BL1's memory is lying outside of the free memory */
+	assert((BL1_RAM_LIMIT <= bl1_mem_layout->free_base) ||
+	       (BL1_RAM_BASE >= bl1_mem_layout->free_base + bl1_mem_layout->free_size));
+
+	/* Remove BL1 RW data from the scope of memory visible to BL2 */
+	*bl2_mem_layout = *bl1_mem_layout;
+	reserve_mem(&bl2_mem_layout->total_base,
+		    &bl2_mem_layout->total_size,
+		    BL1_RAM_BASE,
+		    bl1_size);
+
+	flush_dcache_range((unsigned long)bl2_mem_layout, sizeof(meminfo_t));
+}
 
 /*******************************************************************************
  * Function to perform late architectural and platform specific initialization.
@@ -78,7 +110,6 @@
 #if DEBUG
 	unsigned long sctlr_el3 = read_sctlr_el3();
 #endif
-	unsigned int load_type = TOP_LOAD;
 	image_info_t bl2_image_info = { {0} };
 	entry_point_info_t bl2_ep = { {0} };
 	meminfo_t *bl1_tzram_layout;
@@ -105,17 +136,15 @@
 	SET_PARAM_HEAD(&bl2_image_info, PARAM_IMAGE_BINARY, VERSION_1, 0);
 	SET_PARAM_HEAD(&bl2_ep, PARAM_EP, VERSION_1, 0);
 
-	/*
-	 * Find out how much free trusted ram remains after BL1 load
-	 * & load the BL2 image at its top
-	 */
+	/* Find out how much free trusted ram remains after BL1 load */
 	bl1_tzram_layout = bl1_plat_sec_mem_layout();
+
+	/* Load the BL2 image */
 	err = load_image(bl1_tzram_layout,
-			      (const char *) BL2_IMAGE_NAME,
-			      load_type,
-			      BL2_BASE,
-			      &bl2_image_info,
-			      &bl2_ep);
+			 BL2_IMAGE_NAME,
+			 BL2_BASE,
+			 &bl2_image_info,
+			 &bl2_ep);
 	if (err) {
 		/*
 		 * TODO: print failure to load BL2 but also add a tzwdog timer
@@ -132,10 +161,7 @@
 	 * memory for other purposes.
 	 */
 	bl2_tzram_layout = (meminfo_t *) bl1_tzram_layout->free_base;
-	init_bl2_mem_layout(bl1_tzram_layout,
-			    bl2_tzram_layout,
-			    load_type,
-			    bl2_image_info.image_base);
+	bl1_init_bl2_mem_layout(bl1_tzram_layout, bl2_tzram_layout);
 
 	bl1_plat_set_bl2_ep_info(&bl2_image_info, &bl2_ep);
 	bl2_ep.args.arg1 = (unsigned long)bl2_tzram_layout;
diff --git a/bl1/bl1_private.h b/bl1/bl1_private.h
index b54bf6b..0a8fc45 100644
--- a/bl1/bl1_private.h
+++ b/bl1/bl1_private.h
@@ -31,6 +31,15 @@
 #ifndef __BL1_PRIVATE_H__
 #define __BL1_PRIVATE_H__
 
+/*******************************************************************************
+ * Declarations of linker defined symbols which will tell us where BL1 lives
+ * in Trusted RAM
+ ******************************************************************************/
+extern uint64_t __BL1_RAM_START__;
+extern uint64_t __BL1_RAM_END__;
+#define BL1_RAM_BASE (uint64_t)(&__BL1_RAM_START__)
+#define BL1_RAM_LIMIT (uint64_t)(&__BL1_RAM_END__)
+
 /******************************************
  * Function prototypes
  *****************************************/
