diff --git a/plat/fvp/aarch64/bl1_plat_helpers.S b/plat/fvp/aarch64/bl1_plat_helpers.S
index d72dc39..8cdb10e 100644
--- a/plat/fvp/aarch64/bl1_plat_helpers.S
+++ b/plat/fvp/aarch64/bl1_plat_helpers.S
@@ -226,15 +226,6 @@
 	str	x19, [x1, x2]
 
 	/* ---------------------------------------------
-	 * Enable CCI-400 for this cluster. No need
-	 * for locks as no other cpu is active at the
-	 * moment
-	 * ---------------------------------------------
-	 */
-	mov	x0, x19
-	bl	cci_enable_coherency
-
-	/* ---------------------------------------------
 	 * Architectural init. can be generic e.g.
 	 * enabling stack alignment and platform spec-
 	 * ific e.g. MMU & page table setup as per the
diff --git a/plat/fvp/aarch64/fvp_common.c b/plat/fvp/aarch64/fvp_common.c
index 762f542..78a44a5 100644
--- a/plat/fvp/aarch64/fvp_common.c
+++ b/plat/fvp/aarch64/fvp_common.c
@@ -576,6 +576,7 @@
 		platform_config[CONFIG_MAX_AFF1] = 1;
 		platform_config[CONFIG_CPU_SETUP] = 0;
 		platform_config[CONFIG_BASE_MMAP] = 0;
+		platform_config[CONFIG_HAS_CCI] = 0;
 		break;
 	case HBI_FVP_BASE:
 		midr_pn = (read_midr() >> MIDR_PN_SHIFT) & MIDR_PN_MASK;
@@ -587,6 +588,7 @@
 		platform_config[CONFIG_MAX_AFF0] = 4;
 		platform_config[CONFIG_MAX_AFF1] = 2;
 		platform_config[CONFIG_BASE_MMAP] = 1;
+		platform_config[CONFIG_HAS_CCI] = 1;
 		break;
 	default:
 		assert(0);
diff --git a/plat/fvp/bl1_plat_setup.c b/plat/fvp/bl1_plat_setup.c
index 7131f7a..7fa3f76 100644
--- a/plat/fvp/bl1_plat_setup.c
+++ b/plat/fvp/bl1_plat_setup.c
@@ -34,6 +34,7 @@
 #include <platform.h>
 #include <bl1.h>
 #include <console.h>
+#include <cci400.h>
 
 /*******************************************************************************
  * Declarations of linker defined symbols which will help us find the layout
@@ -126,6 +127,9 @@
 		bl1_tzram_layout.free_size =
 			tzram_limit - bl1_coherent_ram_limit;
 	}
+
+	/* Initialize the platform config for future decision making */
+	platform_config_setup();
 }
 
 /*******************************************************************************
@@ -153,11 +157,23 @@
 
 /*******************************************************************************
  * Perform the very early platform specific architecture setup here. At the
- * moment this is only intializes the mmu in a quick and dirty way. Later arch-
- * itectural setup (bl1_arch_setup()) does not do anything platform specific.
+ * moment this only does basic initialization. Later architectural setup
+ * (bl1_arch_setup()) does not do anything platform specific.
  ******************************************************************************/
 void bl1_plat_arch_setup(void)
 {
+	unsigned long cci_setup;
+
+	/*
+	 * Enable CCI-400 for this cluster. No need
+	 * for locks as no other cpu is active at the
+	 * moment
+	 */
+	cci_setup = platform_get_cfgvar(CONFIG_HAS_CCI);
+	if (cci_setup) {
+		cci_enable_coherency(read_mpidr());
+	}
+
 	configure_mmu(&bl1_tzram_layout,
 		TZROM_BASE,			/* Read_only region start */
 		TZROM_BASE + TZROM_SIZE,	/* Read_only region size */
diff --git a/plat/fvp/fvp_pm.c b/plat/fvp/fvp_pm.c
index 9621319..af8d1b3 100644
--- a/plat/fvp/fvp_pm.c
+++ b/plat/fvp/fvp_pm.c
@@ -111,7 +111,7 @@
 {
 	int rc = PSCI_E_SUCCESS;
 	unsigned int gicc_base, ectlr;
-	unsigned long cpu_setup;
+	unsigned long cpu_setup, cci_setup;
 
 	switch (afflvl) {
 	case MPIDR_AFFLVL1:
@@ -120,7 +120,10 @@
 			 * Disable coherency if this cluster is to be
 			 * turned off
 			 */
-			cci_disable_coherency(mpidr);
+			cci_setup = platform_get_cfgvar(CONFIG_HAS_CCI);
+			if (cci_setup) {
+				cci_disable_coherency(mpidr);
+			}
 
 			/*
 			 * Program the power controller to turn the
@@ -187,7 +190,7 @@
 {
 	int rc = PSCI_E_SUCCESS;
 	unsigned int gicc_base, ectlr;
-	unsigned long cpu_setup, linear_id;
+	unsigned long cpu_setup, cci_setup, linear_id;
 	mailbox *fvp_mboxes;
 
 	/* Cannot allow NS world to execute trusted firmware code */
@@ -203,7 +206,10 @@
 			 * Disable coherency if this cluster is to be
 			 * turned off
 			 */
-			cci_disable_coherency(mpidr);
+			cci_setup = platform_get_cfgvar(CONFIG_HAS_CCI);
+			if (cci_setup) {
+				cci_disable_coherency(mpidr);
+			}
 
 			/*
 			 * Program the power controller to turn the
@@ -270,7 +276,7 @@
 			  unsigned int state)
 {
 	int rc = PSCI_E_SUCCESS;
-	unsigned long linear_id, cpu_setup;
+	unsigned long linear_id, cpu_setup, cci_setup;
 	mailbox *fvp_mboxes;
 	unsigned int gicd_base, gicc_base, reg_val, ectlr;
 
@@ -278,8 +284,12 @@
 
 	case MPIDR_AFFLVL1:
 		/* Enable coherency if this cluster was off */
-		if (state == PSCI_STATE_OFF)
-			cci_enable_coherency(mpidr);
+		if (state == PSCI_STATE_OFF) {
+			cci_setup = platform_get_cfgvar(CONFIG_HAS_CCI);
+			if (cci_setup) {
+				cci_enable_coherency(mpidr);
+			}
+		}
 		break;
 
 	case MPIDR_AFFLVL0:
diff --git a/plat/fvp/platform.h b/plat/fvp/platform.h
index 21a7912..463c637 100644
--- a/plat/fvp/platform.h
+++ b/plat/fvp/platform.h
@@ -72,7 +72,9 @@
 /* Indicate whether the CPUECTLR SMP bit should be enabled. */
 #define CONFIG_CPU_SETUP		6
 #define CONFIG_BASE_MMAP		7
-#define CONFIG_LIMIT			8
+/* Indicates whether CCI should be enabled on the platform. */
+#define CONFIG_HAS_CCI			8
+#define CONFIG_LIMIT			9
 
 /*******************************************************************************
  * Platform memory map related constants
