From ec649330942b7898f0e95c832f16ee189df91609 Mon Sep 17 00:00:00 2001 From: Peng Fan Date: Mon, 23 Sep 2019 10:18:41 +0800 Subject: spl: spi: introduce spl_spi_get_uboot_offs Introduce a weak function spl_spi_get_uboot_offs, then platform could have their own implementation. Signed-off-by: Peng Fan Cc: Simon Goldschmidt Cc: Tien Fong Chee Cc: Marek Vasut Cc: Andreas Dannenberg Cc: Alex Kiernan Cc: Stefan Roese Cc: Patrick Delaunay Cc: Miquel Raynal Cc: Michal Simek --- common/spl/spl_spi.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'common/spl/spl_spi.c') diff --git a/common/spl/spl_spi.c b/common/spl/spl_spi.c index 9b74473377f..84f20ea4ed9 100644 --- a/common/spl/spl_spi.c +++ b/common/spl/spl_spi.c @@ -62,6 +62,12 @@ static ulong spl_spi_fit_read(struct spl_load_info *load, ulong sector, else return 0; } + +unsigned int __weak spl_spi_get_uboot_offs(struct spi_flash *flash) +{ + return CONFIG_SYS_SPI_U_BOOT_OFFS; +} + /* * The main entry for SPI booting. It's necessary that SDRAM is already * configured and available since this code loads the main U-Boot image @@ -71,7 +77,7 @@ static int spl_spi_load_image(struct spl_image_info *spl_image, struct spl_boot_device *bootdev) { int err = 0; - unsigned payload_offs = CONFIG_SYS_SPI_U_BOOT_OFFS; + unsigned int payload_offs; struct spi_flash *flash; struct image_header *header; @@ -90,6 +96,8 @@ static int spl_spi_load_image(struct spl_image_info *spl_image, return -ENODEV; } + payload_offs = spl_spi_get_uboot_offs(flash); + header = spl_get_load_buffer(-sizeof(*header), sizeof(*header)); #if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA) -- cgit v1.2.3 From d9bd2f4a4efa15b129749978ca48675633a13668 Mon Sep 17 00:00:00 2001 From: Peng Fan Date: Mon, 23 Sep 2019 10:18:47 +0800 Subject: spl: spi: support loading i.MX container format file i.MX8 only support AHAB secure boot with Container format image, we could not use FIT to support secure boot, so introduce container support to let SPL could load container images. Cc: Simon Goldschmidt Cc: Tien Fong Chee Cc: York Sun Cc: Marek Vasut Cc: Alex Kiernan Cc: Simon Glass Cc: Philipp Tomsich Cc: Kever Yang Cc: Heiko Schocher Signed-off-by: Peng Fan --- common/spl/spl_spi.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'common/spl/spl_spi.c') diff --git a/common/spl/spl_spi.c b/common/spl/spl_spi.c index 84f20ea4ed9..288dbb5fa98 100644 --- a/common/spl/spl_spi.c +++ b/common/spl/spl_spi.c @@ -141,6 +141,17 @@ static int spl_spi_load_image(struct spl_image_info *spl_image, err = spl_load_simple_fit(spl_image, &load, payload_offs, header); + } else if (IS_ENABLED(CONFIG_SPL_LOAD_IMX_CONTAINER)) { + struct spl_load_info load; + + load.dev = flash; + load.priv = NULL; + load.filename = NULL; + load.bl_len = 1; + load.read = spl_spi_fit_read; + + err = spl_load_imx_container(spl_image, &load, + payload_offs); } else { err = spl_parse_image_header(spl_image, header); if (err) -- cgit v1.2.3