diff --git a/include/bl2/bl2.h b/include/bl2/bl2.h
index 5936d84..4cd3cee 100644
--- a/include/bl2/bl2.h
+++ b/include/bl2/bl2.h
@@ -55,11 +55,6 @@
  ******************************************************************************/
 extern struct bl31_params *bl2_plat_get_bl31_params(void);
 
-/*******************************************************************************
- * This function returns a pointer to the shared memory that the platform has
- * kept aside to pass platform related information that BL3-1 could need
- ******************************************************************************/
-extern struct bl31_plat_params *bl2_plat_get_bl31_plat_params(void);
 
 /*******************************************************************************
  * This function returns a pointer to the shared memory that the platform
diff --git a/include/bl31/bl31.h b/include/bl31/bl31.h
index ad6e70e..e77c554 100644
--- a/include/bl31/bl31.h
+++ b/include/bl31/bl31.h
@@ -43,6 +43,7 @@
  *****************************************/
 struct meminfo;
 struct entry_point_info;
+struct bl31_parms;
 
 /*******************************************************************************
  * Function prototypes
@@ -53,9 +54,9 @@
 extern uint32_t bl31_get_next_image_type(void);
 extern void bl31_prepare_next_image_entry();
 extern struct entry_point_info *bl31_get_next_image_info(uint32_t type);
+extern void bl31_early_platform_setup(struct bl31_params *from_bl2,
+					void *plat_params_from_bl2);
 extern void bl31_platform_setup(void);
-extern struct meminfo *bl31_plat_get_bl32_mem_layout(void);
-extern struct meminfo *bl31_plat_sec_mem_layout(void);
-extern void bl31_register_bl32_init(int32_t (*)(struct meminfo *));
+extern void bl31_register_bl32_init(int32_t (*)(void));
 
 #endif /* __BL31_H__ */
diff --git a/include/common/bl_common.h b/include/common/bl_common.h
index e3e4a43..47b1e40 100644
--- a/include/common/bl_common.h
+++ b/include/common/bl_common.h
@@ -173,18 +173,6 @@
 } bl31_params_t;
 
 
-/***************************************************************************
- * This structure provides platform specific data that needs to be known to
- * BL31. Currently, The loader updates the memory information available for
- * each binary
- ***************************************************************************/
-typedef struct bl31_plat_params {
-	meminfo_t bl31_meminfo;
-	meminfo_t bl32_meminfo;
-	meminfo_t bl33_meminfo;
-} bl31_plat_params_t;
-
-
 /*
  * Compile time assertions related to the 'entry_point_info' structure to
  * ensure that the assembler and the compiler view of the offsets of
