From 01f62b6d0d90a236cbfdf385aab7ec2ac11f2e65 Mon Sep 17 00:00:00 2001 From: Roberto Vargas Date: Tue, 26 Sep 2017 12:53:01 +0100 Subject: Add platform hooks for boot redundancy support These hooks are intended to allow one platform to try load images from alternative places. There is a hook to initialize the sequence of boot locations and a hook to pass to the next sequence. Change-Id: Ia0f84c415208dc4fa4f9d060d58476db23efa5b2 Signed-off-by: Roberto Vargas --- common/bl_common.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'common') diff --git a/common/bl_common.c b/common/bl_common.c index cad4de90..e4473ed3 100644 --- a/common/bl_common.c +++ b/common/bl_common.c @@ -354,7 +354,13 @@ static int load_auth_image_internal(unsigned int image_id, ******************************************************************************/ int load_auth_image(unsigned int image_id, image_info_t *image_data) { - return load_auth_image_internal(image_id, image_data, 0); + int err; + + do { + err = load_auth_image_internal(image_id, image_data, 0); + } while (err != 0 && plat_try_next_boot_source()); + + return err; } #else /* LOAD_IMAGE_V2 */ @@ -553,8 +559,14 @@ int load_auth_image(meminfo_t *mem_layout, image_info_t *image_data, entry_point_info_t *entry_point_info) { - return load_auth_image_internal(mem_layout, image_id, image_base, - image_data, entry_point_info, 0); + int err; + + do { + err = load_auth_image_internal(mem_layout, image_id, image_base, + image_data, entry_point_info, 0); + } while (err != 0 && plat_try_next_boot_source()); + + return err; } #endif /* LOAD_IMAGE_V2 */ -- cgit v1.2.3