diff --git a/include/lib/fconf/fconf.h b/include/lib/fconf/fconf.h index 7020f86..917e053 100644 --- a/include/lib/fconf/fconf.h +++ b/include/lib/fconf/fconf.h @@ -44,7 +44,7 @@ }; /* This function supports to load tb_fw_config and fw_config dtb */ -void fconf_load_config(unsigned int image_id); +int fconf_load_config(unsigned int image_id); /* Top level populate function * 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 #include -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)