diff --git a/spm/cactus/aarch64/cactus_entrypoint.S b/spm/cactus/aarch64/cactus_entrypoint.S
index 4323d0e..214b4cf 100644
--- a/spm/cactus/aarch64/cactus_entrypoint.S
+++ b/spm/cactus/aarch64/cactus_entrypoint.S
@@ -17,17 +17,11 @@
 
 func cactus_entrypoint
 
-	/* Save the base address and size of the buffer. */
-	mov	x20, x0
-	mov	x21, x1
-
 	/* Setup the stack pointer. */
 	adr	x0, stacks_end
 	mov	sp, x0
 
-	/* And do the rest in C code */
-	mov	x0, x20
-	mov	x1, x21
+	/* And jump to the C entrypoint. */
 	b	cactus_main
 
 endfunc cactus_entrypoint
diff --git a/spm/cactus/cactus_main.c b/spm/cactus/cactus_main.c
index 4f0d1ae..faf8ccc 100644
--- a/spm/cactus/cactus_main.c
+++ b/spm/cactus/cactus_main.c
@@ -16,66 +16,43 @@
 #include <std_svc.h>
 
 #include "cactus.h"
+#include "cactus_def.h"
 #include "cactus_tests.h"
 
-
 /* Host machine information injected by the build system in the ELF file. */
 extern const char build_message[];
 extern const char version_string[];
 
-/*
- * The ARM Trusted Firmware passes a description of the memory resources
- * allocated to the secure partition through the x0 register. This maps to
- * a secure_partition_boot_info_t structure type.
- *
- * This functions prints the information stored in this structure.
- */
-static void cactus_print_memory_layout(const secure_partition_boot_info_t *boot_info)
+static void cactus_print_memory_layout(void)
 {
 	NOTICE("Secure Partition memory layout:\n");
 
-	NOTICE("  Secure Partition image   : %p - %p\n",
-		(void *) boot_info->sp_image_base,
-		(void *)(boot_info->sp_image_base + boot_info->sp_image_size));
+	NOTICE("  Image regions\n");
 	NOTICE("    Text region            : %p - %p\n",
-		(void *) CACTUS_TEXT_START, (void *) CACTUS_TEXT_END);
+		(void *)CACTUS_TEXT_START, (void *)CACTUS_TEXT_END);
 	NOTICE("    Read-only data region  : %p - %p\n",
-		(void *) CACTUS_RODATA_START, (void *) CACTUS_RODATA_END);
-	NOTICE("    Read-write data region : %p - %p\n",
-		(void *) CACTUS_RWDATA_START, (void *) CACTUS_RWDATA_END);
-	NOTICE("      BSS region           : %p - %p\n",
-		(void *) CACTUS_BSS_START, (void *) CACTUS_BSS_END);
-	NOTICE("    Unused SP image space  : %p - %p\n",
-		(void *) CACTUS_BSS_END,
-		(void *)(boot_info->sp_image_base + boot_info->sp_image_size));
-
-	NOTICE("  EL3-EL0 shared buffer    : %p - %p\n",
-		(void *) boot_info->sp_shared_buf_base,
-		(void *)(boot_info->sp_shared_buf_base + boot_info->sp_shared_buf_size));
-
-	NOTICE("  S-NS shared buffer       : %p - %p\n",
-		(void *) boot_info->sp_ns_comm_buf_base,
-		(void *)(boot_info->sp_ns_comm_buf_base + boot_info->sp_ns_comm_buf_size));
-
-	assert(boot_info->sp_ns_comm_buf_base == ARM_SECURE_SERVICE_BUFFER_BASE);
-	assert(boot_info->sp_ns_comm_buf_size == ARM_SECURE_SERVICE_BUFFER_SIZE);
-
-	NOTICE("  Stacks region (%u CPUS)   : %p - %p\n",
-		boot_info->num_cpus,
-		(void *) boot_info->sp_stack_base,
-		(void *)(boot_info->sp_stack_base +
-			 (boot_info->sp_pcpu_stack_size * boot_info->num_cpus)));
-
-	NOTICE("  Heap region              : %p - %p\n",
-		(void *) boot_info->sp_heap_base,
-		(void *)(boot_info->sp_heap_base + boot_info->sp_heap_size));
-
-	NOTICE("Total memory               : %p - %p\n",
-		(void *) boot_info->sp_mem_base, (void *) boot_info->sp_mem_limit);
+		(void *)CACTUS_RODATA_START, (void *)CACTUS_RODATA_END);
+	NOTICE("    Data region            : %p - %p\n",
+		(void *)CACTUS_DATA_START, (void *)CACTUS_DATA_END);
+	NOTICE("    BSS region             : %p - %p\n",
+		(void *)CACTUS_BSS_START, (void *)CACTUS_BSS_END);
+	NOTICE("    Total image memory     : %p - %p\n",
+		(void *)CACTUS_IMAGE_BASE,
+		(void *)(CACTUS_IMAGE_BASE + CACTUS_IMAGE_SIZE));
+	NOTICE("  SPM regions\n");
+	NOTICE("    SPM <-> SP buffer      : %p - %p\n",
+		(void *)CACTUS_SPM_BUF_BASE,
+		(void *)(CACTUS_SPM_BUF_BASE + CACTUS_SPM_BUF_SIZE));
+	NOTICE("    NS <-> SP buffer       : %p - %p\n",
+		(void *)CACTUS_NS_BUF_BASE,
+		(void *)(CACTUS_NS_BUF_BASE + CACTUS_NS_BUF_SIZE));
+	NOTICE("  Test regions\n");
+	NOTICE("    Test region            : %p - %p\n",
+		(void *)CACTUS_TEST_MEM_BASE,
+		(void *)(CACTUS_TEST_MEM_BASE + CACTUS_TEST_MEM_SIZE));
 }
 
-
-void __dead2 cactus_main(void *el3_el0_buffer, size_t el3_el0_buffer_size)
+void __dead2 cactus_main(void)
 {
 	console_init(PL011_UART2_BASE,
 		     PL011_UART2_CLK_IN_HZ,
@@ -86,26 +63,7 @@
 	NOTICE("%s\n", version_string);
 	NOTICE("Running at S-EL0\n");
 
-	const secure_partition_boot_info_t *boot_info =
-		(const secure_partition_boot_info_t *) el3_el0_buffer;
-
-	if (el3_el0_buffer_size < sizeof(secure_partition_boot_info_t)) {
-		ERROR("The memory buffer shared between EL3/S-EL0 is too small\n");
-		ERROR("It is %lu bytes, it should be at least %lu bytes\n",
-			el3_el0_buffer_size,
-			sizeof(secure_partition_boot_info_t));
-		panic();
-	}
-
-	if ((CACTUS_TEXT_START != boot_info->sp_image_base) ||
-	    (CACTUS_RWDATA_END > boot_info->sp_image_base
-		    + boot_info->sp_image_size)) {
-		ERROR("Cactus does not fit in the buffer allocated for the secure partition\n");
-		panic();
-	}
-
-	cactus_print_memory_layout(boot_info);
-
+	cactus_print_memory_layout();
 
 	/*
 	 * Run some initial tests.
@@ -115,7 +73,7 @@
 	 */
 	misc_tests();
 	system_setup_tests();
-	mem_attr_changes_tests(boot_info);
+	mem_attr_changes_tests();
 
 	/*
 	 * Handle secure service requests.
diff --git a/spm/cactus/cactus_tests.h b/spm/cactus/cactus_tests.h
index d0e11dc..f4bcb7e 100644
--- a/spm/cactus/cactus_tests.h
+++ b/spm/cactus/cactus_tests.h
@@ -1,13 +1,11 @@
 /*
- * Copyright (c) 2017, Arm Limited. All rights reserved.
+ * Copyright (c) 2017-2018, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
 
-#ifndef __CACTUS_TESTS_H__
-#define __CACTUS_TESTS_H__
-
-#include <secure_partition.h>
+#ifndef CACTUS_TESTS_H
+#define CACTUS_TESTS_H
 
 /*
  * Test functions
@@ -36,11 +34,7 @@
  *
  * These tests report their results on the UART. They do not recover from a
  * failure : when an error is encountered they endlessly loop.
- *
- * The argument is a pointer to a secure_partition_boot_info_t struct that has
- * been filled by EL3 with the information about the memory map of this Secure
- * Partition.
  */
-void mem_attr_changes_tests(const secure_partition_boot_info_t *boot_info);
+void mem_attr_changes_tests(void);
 
-#endif /* __CACTUS_TESTS_H__ */
+#endif /* CACTUS_TESTS_H */
diff --git a/spm/cactus/cactus_tests_memory_attributes.c b/spm/cactus/cactus_tests_memory_attributes.c
index 9b1e84a..ad86240 100644
--- a/spm/cactus/cactus_tests_memory_attributes.c
+++ b/spm/cactus/cactus_tests_memory_attributes.c
@@ -16,6 +16,7 @@
 #include <xlat_tables_defs.h>
 
 #include "cactus.h"
+#include "cactus_def.h"
 #include "cactus_tests.h"
 
 /* This is filled at runtime. */
@@ -136,15 +137,15 @@
  * Exercise the ability of the Trusted Firmware to change the data access
  * permissions and instruction execution permissions of some memory region.
  */
-void mem_attr_changes_tests(const secure_partition_boot_info_t *boot_info)
+void mem_attr_changes_tests(void)
 {
 	uint32_t attributes;
 	int32_t ret;
 	uintptr_t addr;
 
-	cactus_tests_start = CACTUS_BSS_END;
-	cactus_tests_end   = boot_info->sp_image_base + boot_info->sp_image_size;
-	cactus_tests_size  = cactus_tests_end - cactus_tests_start;
+	cactus_tests_start = CACTUS_TEST_MEM_BASE;
+	cactus_tests_size  = CACTUS_TEST_MEM_SIZE;
+	cactus_tests_end   = cactus_tests_start + cactus_tests_size;
 
 	const char *test_sect_desc = "memory attributes changes";
 
@@ -181,7 +182,7 @@
 	const char *test_desc4 = "Unmapped memory region";
 
 	announce_test_start(test_desc4);
-	addr = boot_info->sp_mem_limit + 2 * PAGE_SIZE;
+	addr = cactus_tests_end + 2 * PAGE_SIZE;
 	attributes = mem_access_perm(SP_MEMORY_ATTRIBUTES_NON_EXEC, SP_MEMORY_ATTRIBUTES_ACCESS_RW);
 	ret = request_mem_attr_changes(addr, 3, attributes);
 	expect(ret, SPM_INVALID_PARAMETER);
@@ -190,7 +191,7 @@
 	const char *test_desc5 = "Partially unmapped memory region";
 
 	announce_test_start(test_desc5);
-	addr = boot_info->sp_mem_base - 2 * PAGE_SIZE;
+	addr = cactus_tests_end - 2 * PAGE_SIZE;
 	attributes = mem_access_perm(SP_MEMORY_ATTRIBUTES_NON_EXEC, SP_MEMORY_ATTRIBUTES_ACCESS_RW);
 	ret = request_mem_attr_changes(addr, 6, attributes);
 	expect(ret, SPM_INVALID_PARAMETER);
