spl_mmc: add Falcon mode support for FAT variant

If Falcon mode support is enabled (and the system isn't directed into
booting u-boot), it will instead try to load kernel from
CONFIG_SPL_FAT_LOAD_KERNEL_NAME file and kernel argument parameters from
CONFIG_SPL_FAT_LOAD_ARGS_NAME, both from the same partition as u-boot.

Signed-off-by: Peter Korsgaard <peter.korsgaard@barco.com>
master
Peter Korsgaard 11 years ago committed by Tom Rini
parent b6144dfce9
commit 7ad2cc7964
  1. 8
      README
  2. 21
      common/spl/spl_mmc.c

@ -2938,6 +2938,14 @@ FIT uImage format:
CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME
Filename to read to load U-Boot when reading from FAT Filename to read to load U-Boot when reading from FAT
CONFIG_SPL_FAT_LOAD_KERNEL_NAME
Filename to read to load kernel uImage when reading
from FAT (for Falcon mode)
CONFIG_SPL_FAT_LOAD_ARGS_NAME
Filename to read to load kernel argument parameters
when reading from FAT (for Falcon mode)
CONFIG_SPL_MPC83XX_WAIT_FOR_NAND CONFIG_SPL_MPC83XX_WAIT_FOR_NAND
Set this for NAND SPL on PPC mpc83xx targets, so that Set this for NAND SPL on PPC mpc83xx targets, so that
start.S waits for the rest of the SPL to load before start.S waits for the rest of the SPL to load before

@ -91,6 +91,24 @@ end:
return (err <= 0); return (err <= 0);
} }
#ifdef CONFIG_SPL_OS_BOOT
static int mmc_load_image_fat_os(struct mmc *mmc)
{
int err;
err = file_fat_read(CONFIG_SPL_FAT_LOAD_ARGS_NAME,
(void *)CONFIG_SYS_SPL_ARGS_ADDR, 0);
if (err <= 0) {
printf("spl: error reading image %s, err - %d\n",
CONFIG_SPL_FAT_LOAD_ARGS_NAME, err);
return -1;
}
return mmc_load_image_fat(mmc, CONFIG_SPL_FAT_LOAD_KERNEL_NAME);
}
#endif
#endif #endif
void spl_mmc_load_image(void) void spl_mmc_load_image(void)
@ -128,6 +146,9 @@ void spl_mmc_load_image(void)
hang(); hang();
} }
#ifdef CONFIG_SPL_OS_BOOT
if (spl_start_uboot() || mmc_load_image_fat_os(mmc))
#endif
err = mmc_load_image_fat(mmc, CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME); err = mmc_load_image_fat(mmc, CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME);
#endif #endif
} else { } else {

Loading…
Cancel
Save