mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-18 21:21:37 +00:00
spl: Support loading a FIT from SPI
Detect a FIT when loading from SPI and handle it using the new FIT SPL support. Reviewed-by: Tom Rini <trini@konsulko.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
This commit is contained in:
parent
97ca364faf
commit
00d559561e
1 changed files with 32 additions and 5 deletions
|
@ -48,6 +48,18 @@ static int spi_load_image_os(struct spi_flash *flash,
|
|||
}
|
||||
#endif
|
||||
|
||||
static ulong spl_spi_fit_read(struct spl_load_info *load, ulong sector,
|
||||
ulong count, void *buf)
|
||||
{
|
||||
struct spi_flash *flash = load->dev;
|
||||
ulong ret;
|
||||
|
||||
ret = spi_flash_read(flash, sector, count, buf);
|
||||
if (!ret)
|
||||
return count;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
/*
|
||||
* 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
|
||||
|
@ -85,11 +97,26 @@ int spl_spi_load_image(void)
|
|||
if (err)
|
||||
return err;
|
||||
|
||||
err = spl_parse_image_header(header);
|
||||
if (err)
|
||||
return err;
|
||||
err = spi_flash_read(flash, CONFIG_SYS_SPI_U_BOOT_OFFS,
|
||||
spl_image.size, (void *)spl_image.load_addr);
|
||||
if (IS_ENABLED(CONFIG_SPL_LOAD_FIT)) {
|
||||
struct spl_load_info load;
|
||||
|
||||
debug("Found FIT\n");
|
||||
load.dev = flash;
|
||||
load.priv = NULL;
|
||||
load.filename = NULL;
|
||||
load.bl_len = 1;
|
||||
load.read = spl_spi_fit_read;
|
||||
err = spl_load_simple_fit(&load,
|
||||
CONFIG_SYS_SPI_U_BOOT_OFFS,
|
||||
header);
|
||||
} else {
|
||||
err = spl_parse_image_header(header);
|
||||
if (err)
|
||||
return err;
|
||||
err = spi_flash_read(flash, CONFIG_SYS_SPI_U_BOOT_OFFS,
|
||||
spl_image.size,
|
||||
(void *)spl_image.load_addr);
|
||||
}
|
||||
}
|
||||
|
||||
return err;
|
||||
|
|
Loading…
Add table
Reference in a new issue