[U-Boot] [PATCH 9/9] spl: spi: Add support for fetching image position from control DT
Marek Vasut
marex at denx.de
Thu Dec 28 12:06:21 UTC 2017
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 <marex at denx.de>
Cc: Pantelis Antoniou <pantelis.antoniou at konsulko.com>
Cc: Simon Glass <sjg at 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
More information about the U-Boot
mailing list