diff --git a/lib/fconf/fconf.c b/lib/fconf/fconf.c
index ff16f67..affec54 100644
--- a/lib/fconf/fconf.c
+++ b/lib/fconf/fconf.c
@@ -14,14 +14,14 @@
 #include <plat/common/platform.h>
 #include <platform_def.h>
 
-void fconf_load_config(unsigned int image_id)
+int fconf_load_config(unsigned int image_id)
 {
 	int err;
-	struct dyn_cfg_dtb_info_t *config_info;
+	const struct dyn_cfg_dtb_info_t *config_info;
 
 	assert((image_id == FW_CONFIG_ID) || (image_id == TB_FW_CONFIG_ID));
 
-	image_info_t image_info = {
+	image_info_t config_image_info = {
 		.h.type = (uint8_t)PARAM_IMAGE_BINARY,
 		.h.version = (uint8_t)VERSION_2,
 		.h.size = (uint16_t)sizeof(image_info_t),
@@ -29,20 +29,20 @@
 	};
 
 	config_info = FCONF_GET_PROPERTY(dyn_cfg, dtb, image_id);
-	image_info.image_base = config_info->config_addr;
-	image_info.image_max_size = config_info->config_max_size;
+	config_image_info.image_base = config_info->config_addr;
+	config_image_info.image_max_size = (uint32_t)config_info->config_max_size;
 
 	VERBOSE("FCONF: Loading config with image ID: %d\n", image_id);
-	err = load_auth_image(image_id, &image_info);
+	err = load_auth_image(image_id, &config_image_info);
 	if (err != 0) {
-		VERBOSE("Failed to load config %d, continuing without it\n",
-			image_id);
-		return;
+		VERBOSE("Failed to load config %d\n", image_id);
+		return err;
 	}
 
 	INFO("FCONF: Config file with image ID:%d loaded at address = 0x%lx\n",
-		image_id, image_info.image_base);
+		image_id, config_image_info.image_base);
 
+	return 0;
 }
 
 void fconf_populate(const char *config_type, uintptr_t config)
