diff --git a/include/lib/fconf/fconf.h b/include/lib/fconf/fconf.h
index 5a5837f..f58ff57 100644
--- a/include/lib/fconf/fconf.h
+++ b/include/lib/fconf/fconf.h
@@ -47,4 +47,15 @@
  */
 void fconf_populate(uintptr_t config);
 
+/* FCONF specific getter */
+#define fconf__dtb_getter(prop)	fconf_dtb_info.prop
+
+/* Structure used to locally keep a reference to the config dtb. */
+struct fconf_dtb_info_t {
+	uintptr_t base_addr;
+	size_t size;
+};
+
+extern struct fconf_dtb_info_t fconf_dtb_info;
+
 #endif /* FCONF_H */
diff --git a/lib/fconf/fconf.c b/lib/fconf/fconf.c
index 7e0b00b..2ca1bdc 100644
--- a/lib/fconf/fconf.c
+++ b/lib/fconf/fconf.c
@@ -7,18 +7,17 @@
 #include <assert.h>
 
 #include <common/debug.h>
+#include <common/fdt_wrappers.h>
 #include <lib/fconf/fconf.h>
 #include <libfdt.h>
 #include <plat/common/platform.h>
 #include <platform_def.h>
 
-static uintptr_t tb_fw_cfg_dtb;
-static size_t tb_fw_cfg_dtb_size;
+struct fconf_dtb_info_t fconf_dtb_info;
 
 void fconf_load_config(void)
 {
 	int err;
-	image_desc_t *desc;
 
 	image_info_t arm_tb_fw_info = {
 		.h.type = (uint8_t)PARAM_IMAGE_BINARY,
@@ -27,7 +26,7 @@
 		.h.attr = 0,
 		.image_base = ARM_TB_FW_CONFIG_BASE,
 		.image_max_size = (uint32_t)
-			(ARM_TB_FW_CONFIG_LIMIT - ARM_TB_FW_CONFIG_BASE)
+				(ARM_TB_FW_CONFIG_LIMIT - ARM_TB_FW_CONFIG_BASE)
 	};
 
 	VERBOSE("FCONF: Loading FW_CONFIG\n");
@@ -39,15 +38,19 @@
 	}
 
 	/* At this point we know that a DTB is indeed available */
-	tb_fw_cfg_dtb = arm_tb_fw_info.image_base;
-	tb_fw_cfg_dtb_size = (size_t)arm_tb_fw_info.image_size;
+	fconf_dtb_info.base_addr = arm_tb_fw_info.image_base;
+	fconf_dtb_info.size = (size_t)arm_tb_fw_info.image_size;
+
+#if !BL2_AT_EL3
+	image_desc_t *desc;
 
 	/* The BL2 ep_info arg0 is modified to point to FW_CONFIG */
 	desc = bl1_plat_get_image_desc(BL2_IMAGE_ID);
 	assert(desc != NULL);
-	desc->ep_info.args.arg0 = tb_fw_cfg_dtb;
+	desc->ep_info.args.arg0 = arm_tb_fw_info.image_base;
+#endif
 
-	INFO("FCONF: FW_CONFIG loaded at address = 0x%lx\n", tb_fw_cfg_dtb);
+	INFO("FCONF: FW_CONFIG loaded at address = 0x%lx\n", arm_tb_fw_info.image_base);
 }
 
 void fconf_populate(uintptr_t config)
@@ -76,4 +79,7 @@
 			panic();
 		}
 	}
+
+	/* save local pointer to the config dtb */
+	fconf_dtb_info.base_addr = config;
 }
diff --git a/plat/arm/common/arm_bl2_setup.c b/plat/arm/common/arm_bl2_setup.c
index cdf87ca..5f83bcc 100644
--- a/plat/arm/common/arm_bl2_setup.c
+++ b/plat/arm/common/arm_bl2_setup.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2015-2020, ARM Limited and Contributors. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -14,6 +14,7 @@
 #include <common/debug.h>
 #include <common/desc_image_load.h>
 #include <drivers/generic_delay_timer.h>
+#include <lib/fconf/fconf.h>
 #ifdef SPD_opteed
 #include <lib/optee_utils.h>
 #endif
@@ -58,11 +59,13 @@
 	/* Setup the BL2 memory layout */
 	bl2_tzram_layout = *mem_layout;
 
+	/* Fill the properties struct with the info from the config dtb */
+	if (tb_fw_config != 0U) {
+		fconf_populate(tb_fw_config);
+	}
+
 	/* Initialise the IO layer and register platform IO devices */
 	plat_arm_io_setup();
-
-	if (tb_fw_config != 0U)
-		arm_bl2_set_tb_cfg_addr((void *)tb_fw_config);
 }
 
 void bl2_early_platform_setup2(u_register_t arg0, u_register_t arg1, u_register_t arg2, u_register_t arg3)
