spl: spi: refactor spl_spi_load_image for falcon mode
This patch moves the falcon mode handling logic out of spl_spi_load_image to spl_spi_load_image_os, this allows for cleaner handling for fallback to U-Boot in case falcon mode fails. Signed-off-by: Anshul Dalal <anshuld@ti.com>
This commit is contained in:
@@ -49,6 +49,25 @@ u32 __weak spl_spi_boot_cs(void)
|
||||
return CONFIG_SF_DEFAULT_CS;
|
||||
}
|
||||
|
||||
#if IS_ENABLED(CONFIG_SPL_OS_BOOT)
|
||||
static int spl_spi_load_image_os(struct spl_image_info *spl_image,
|
||||
struct spl_boot_device *bootdev,
|
||||
struct spi_flash *flash,
|
||||
struct spl_load_info *load)
|
||||
{
|
||||
int err = spl_load(spl_image, bootdev, load, 0,
|
||||
CONFIG_SYS_SPI_KERNEL_OFFS);
|
||||
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
/* Read device tree. */
|
||||
return spi_flash_read(flash, CONFIG_SYS_SPI_ARGS_OFFS,
|
||||
CONFIG_SYS_SPI_ARGS_SIZE,
|
||||
(void *)CONFIG_SPL_PAYLOAD_ARGS_ADDR);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* 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
|
||||
@@ -81,15 +100,13 @@ static int spl_spi_load_image(struct spl_image_info *spl_image,
|
||||
|
||||
#if CONFIG_IS_ENABLED(OS_BOOT)
|
||||
if (!spl_start_uboot()) {
|
||||
int err = spl_load(spl_image, bootdev, &load, 0,
|
||||
CONFIG_SYS_SPI_KERNEL_OFFS);
|
||||
err = spl_spi_load_image_os(spl_image, bootdev, flash, &load);
|
||||
|
||||
if (!err)
|
||||
/* Read device tree. */
|
||||
return spi_flash_read(
|
||||
flash, CONFIG_SYS_SPI_ARGS_OFFS,
|
||||
CONFIG_SYS_SPI_ARGS_SIZE,
|
||||
(void *)CONFIG_SPL_PAYLOAD_ARGS_ADDR);
|
||||
return 0;
|
||||
|
||||
printf("%s: Failed in falcon boot: %d, fallback to U-Boot",
|
||||
__func__, err);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user