mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-21 06:31:31 +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
|
#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
|
* 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
|
* configured and available since this code loads the main U-Boot image
|
||||||
|
@ -85,11 +97,26 @@ int spl_spi_load_image(void)
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
err = spl_parse_image_header(header);
|
if (IS_ENABLED(CONFIG_SPL_LOAD_FIT)) {
|
||||||
if (err)
|
struct spl_load_info load;
|
||||||
return err;
|
|
||||||
err = spi_flash_read(flash, CONFIG_SYS_SPI_U_BOOT_OFFS,
|
debug("Found FIT\n");
|
||||||
spl_image.size, (void *)spl_image.load_addr);
|
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;
|
return err;
|
||||||
|
|
Loading…
Add table
Reference in a new issue