From a1be94b65410c7ebba5e7695478b6623579b410c Mon Sep 17 00:00:00 2001 From: Peng Fan Date: Tue, 5 Dec 2017 13:20:59 +0800 Subject: SPL: Add FIT data-position property support For external data, FIT has a optional property "data-position" which can set the external data to a fixed offset to FIT beginning. Add the support for this property in SPL FIT. Signed-off-by: Ye Li Signed-off-by: Peng Fan Reviewed-by: Simon Glass Reviewed-by: Tomas Melin Cc: Pantelis Antoniou Cc: "Andrew F. Davis" Cc: Igor Grinberg Cc: "tomas.melin@vaisala.com" Cc: Kever Yang Cc: Andre Przywara Cc: York Sun Cc: Lokesh Vutla Cc: "Cooper Jr., Franklin" Cc: George McCollister Cc: Tuomas Tynkkynen Cc: Jean-Jacques Hiblot Cc: Rick Altherr Cc: Tom Rini Reviewed-by: Lokesh Vutla Reviewed-by: York Sun --- common/spl/spl_fit.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'common/spl/spl_fit.c') diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c index 72ae8f4c503..cc07fbc8a02 100644 --- a/common/spl/spl_fit.c +++ b/common/spl/spl_fit.c @@ -173,6 +173,7 @@ static int spl_load_fit_image(struct spl_load_info *info, ulong sector, int align_len = ARCH_DMA_MINALIGN - 1; uint8_t image_comp = -1, type = -1; const void *data; + bool external_data = false; if (IS_ENABLED(CONFIG_SPL_OS_BOOT) && IS_ENABLED(CONFIG_SPL_GZIP)) { if (fit_image_get_comp(fit, node, &image_comp)) @@ -189,9 +190,15 @@ static int spl_load_fit_image(struct spl_load_info *info, ulong sector, if (fit_image_get_load(fit, node, &load_addr)) load_addr = image_info->load_addr; - if (!fit_image_get_data_offset(fit, node, &offset)) { - /* External data */ + if (!fit_image_get_data_position(fit, node, &offset)) { + external_data = true; + } else if (!fit_image_get_data_offset(fit, node, &offset)) { offset += base_offset; + external_data = true; + } + + if (external_data) { + /* External data */ if (fit_image_get_data_size(fit, node, &len)) return -ENOENT; -- cgit v1.2.3