diff --git a/bl32/tsp/tsp.ld.S b/bl32/tsp/tsp.ld.S
index 53bce7d5a04c19a279bd72b4d6f829235b0b39e5..797d8d7c13fa2c8e11493c57e65519645c4fa8e2 100644
--- a/bl32/tsp/tsp.ld.S
+++ b/bl32/tsp/tsp.ld.S
@@ -36,7 +36,7 @@ ENTRY(tsp_entrypoint)
 
 
 MEMORY {
-    RAM (rwx): ORIGIN = TZDRAM_BASE, LENGTH = TZDRAM_SIZE
+    RAM (rwx): ORIGIN = TSP_SEC_MEM_BASE, LENGTH = TSP_SEC_MEM_SIZE
 }
 
 
@@ -119,5 +119,5 @@ SECTIONS
     __COHERENT_RAM_UNALIGNED_SIZE__ =
         __COHERENT_RAM_END_UNALIGNED__ - __COHERENT_RAM_START__;
 
-    ASSERT(. <= TZDRAM_BASE + (1 << 21), "BL32 image does not fit in the first 2MB of Trusted DRAM.")
+    ASSERT(. <= BL32_LIMIT, "BL3-2 image does not fit.")
 }
diff --git a/docs/porting-guide.md b/docs/porting-guide.md
index e967b0e454d987166a3fa743142f9efb5bdd2a4b..5d9d72728efade094efb90da763036a0d3f1e7b3 100644
--- a/docs/porting-guide.md
+++ b/docs/porting-guide.md
@@ -191,9 +191,35 @@ constants defined. In the ARM FVP port, this file is found in
     image. Must be aligned on a page-size boundary.
 
 *   **#define : NS_IMAGE_OFFSET**
+
     Defines the base address in non-secure DRAM where BL2 loads the BL3-3 binary
     image. Must be aligned on a page-size boundary.
 
+If the BL3-2 image is supported by the platform, the following constants must
+be defined as well:
+
+*   **#define : TSP_SEC_MEM_BASE**
+
+    Defines the base address of the secure memory used by the BL3-2 image on the
+    platform.
+
+*   **#define : TSP_SEC_MEM_SIZE**
+
+    Defines the size of the secure memory used by the BL3-2 image on the
+    platform.
+
+*   **#define : BL32_BASE**
+
+    Defines the base address in secure memory where BL2 loads the BL3-2 binary
+    image. Must be inside the secure memory identified by `TSP_SEC_MEM_BASE` and
+    `TSP_SEC_MEM_SIZE` constants. Must also be aligned on a page-size boundary.
+
+*   **#define : BL32_LIMIT**
+
+    Defines the maximum address that the BL3-2 image can occupy. Must be inside
+    the secure memory identified by `TSP_SEC_MEM_BASE` and `TSP_SEC_MEM_SIZE`
+    constants.
+
 
 ### Other mandatory modifications
 
diff --git a/plat/fvp/bl2_plat_setup.c b/plat/fvp/bl2_plat_setup.c
index 80bb52e5a83c4b8ae027738ca8704b5f8f54b3d1..9d29160831363e3f83fb75478d0c2ffc988b0a64 100644
--- a/plat/fvp/bl2_plat_setup.c
+++ b/plat/fvp/bl2_plat_setup.c
@@ -158,9 +158,9 @@ void bl2_platform_setup()
 	bl2_to_bl31_args->bl32_meminfo.free_base = BL32_BASE;
 
 	bl2_to_bl31_args->bl32_meminfo.total_size =
-		(TZDRAM_BASE + TZDRAM_SIZE) - BL32_BASE;
+		(TSP_SEC_MEM_BASE + TSP_SEC_MEM_SIZE) - BL32_BASE;
 	bl2_to_bl31_args->bl32_meminfo.free_size =
-		(TZDRAM_BASE + TZDRAM_SIZE) - BL32_BASE;
+		(TSP_SEC_MEM_BASE + TSP_SEC_MEM_SIZE) - BL32_BASE;
 
 	bl2_to_bl31_args->bl32_meminfo.attr = BOT_LOAD;
 	bl2_to_bl31_args->bl32_meminfo.next = 0;
diff --git a/plat/fvp/platform.h b/plat/fvp/platform.h
index 40f780eff1a382ffdae667fd77db88c053a5c8bd..1e6da85646b654eeee2e47773caa63fb8067eec4 100644
--- a/plat/fvp/platform.h
+++ b/plat/fvp/platform.h
@@ -243,7 +243,10 @@
 /*******************************************************************************
  * BL32 specific defines.
  ******************************************************************************/
+#define TSP_SEC_MEM_BASE		TZDRAM_BASE
+#define TSP_SEC_MEM_SIZE		TZDRAM_SIZE
 #define BL32_BASE			(TZDRAM_BASE + 0x2000)
+#define BL32_LIMIT			(TZDRAM_BASE + (1 << 21))
 
 /*******************************************************************************
  * Platform specific page table and MMU setup constants