Add support for fetching the image position in RAM from control DT rather than hard-coding it. While doing so, return the return value of spl_parse_header_image() to make it possible to test application of DTOs on U-Boot's control DT.
Signed-off-by: Marek Vasut <ma...@denx.de> Cc: Pantelis Antoniou <pantelis.anton...@konsulko.com> Cc: Simon Glass <s...@chromium.org> --- common/spl/spl_spi.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/common/spl/spl_spi.c b/common/spl/spl_spi.c index 42880d56b9..c2613a494b 100644 --- a/common/spl/spl_spi.c +++ b/common/spl/spl_spi.c @@ -75,6 +75,7 @@ static int spl_spi_load_image(struct spl_image_info *spl_image, unsigned payload_offs = CONFIG_SYS_SPI_U_BOOT_OFFS; struct spi_flash *flash; struct image_header *header; + unsigned image_offs, image_size; /* * Load U-Boot image from SPI flash into RAM @@ -96,6 +97,18 @@ static int spl_spi_load_image(struct spl_image_info *spl_image, payload_offs = fdtdec_get_config_int(gd->fdt_blob, "u-boot,spl-payload-offset", payload_offs); + image_offs = fdtdec_get_config_int(gd->fdt_blob, + "u-boot,spl-image-offset", 0); + image_size = fdtdec_get_config_int(gd->fdt_blob, + "u-boot,spl-image-size", 0); + if (image_size) { + err = spi_flash_read(flash, image_offs, + image_size, + (void *)CONFIG_SYS_TEXT_BASE); + if (err) + return err; + return spl_parse_image_header(spl_image, header); + } #endif #ifdef CONFIG_SPL_OS_BOOT -- 2.15.0 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot