spl: falcon: disable fallback to U-Boot on failure
Instead of falling back to the standard U-Boot boot flow, we should just halt boot if the expected boot flow in falcon mode fails. This prevents a malicious actor from accessing U-Boot proper if they can cause a boot failure on falcon mode. Signed-off-by: Anshul Dalal <anshuld@ti.com>
This commit is contained in:
@@ -272,6 +272,8 @@ static int spl_mmc_do_fs_boot(struct spl_image_info *spl_image,
|
||||
return 0;
|
||||
printf("%s, Failed to load falcon payload: %d\n", __func__,
|
||||
ret);
|
||||
if (IS_ENABLED(CONFIG_SPL_OS_BOOT_SECURE))
|
||||
return ret;
|
||||
printf("Fallback to U-Boot\n");
|
||||
}
|
||||
|
||||
@@ -412,6 +414,8 @@ int spl_mmc_load(struct spl_image_info *spl_image,
|
||||
ret = mmc_load_image_raw_os(spl_image, bootdev, mmc);
|
||||
if (!ret)
|
||||
return 0;
|
||||
if (IS_ENABLED(CONFIG_SPL_OS_BOOT_SECURE))
|
||||
return ret;
|
||||
}
|
||||
|
||||
raw_sect = spl_mmc_get_uboot_raw_sector(mmc, raw_sect);
|
||||
|
||||
@@ -138,8 +138,10 @@ static int spl_nand_load_image(struct spl_image_info *spl_image,
|
||||
err = spl_nand_load_image_os(spl_image, bootdev);
|
||||
if (!err)
|
||||
return 0;
|
||||
printf("%s: Failed in falcon boot: %d, fallback to U-Boot",
|
||||
__func__, err);
|
||||
printf("%s: Failed in falcon boot: %d", __func__, err);
|
||||
if (IS_ENABLED(CONFIG_SPL_OS_BOOT_SECURE))
|
||||
return err;
|
||||
printf("Fallback to U-Boot\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -96,8 +96,10 @@ static int spl_nor_load_image(struct spl_image_info *spl_image,
|
||||
if (!err)
|
||||
return 0;
|
||||
|
||||
printf("%s: Failed in falcon boot: %d, fallback to U-Boot",
|
||||
__func__, err);
|
||||
printf("%s: Failed in falcon boot: %d", __func__, err);
|
||||
if (IS_ENABLED(CONFIG_SPL_OS_BOOT_SECURE))
|
||||
return err;
|
||||
printf("Fallback to U-Boot\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -105,8 +105,10 @@ static int spl_spi_load_image(struct spl_image_info *spl_image,
|
||||
if (!err)
|
||||
return 0;
|
||||
|
||||
printf("%s: Failed in falcon boot: %d, fallback to U-Boot",
|
||||
__func__, err);
|
||||
printf("%s: Failed in falcon boot: %d", __func__, err);
|
||||
if (IS_ENABLED(CONFIG_SPL_OS_BOOT_SECURE))
|
||||
return err;
|
||||
printf("Fallback to U-Boot\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -77,6 +77,8 @@ int spl_ubi_load_image(struct spl_image_info *spl_image,
|
||||
return 0;
|
||||
|
||||
printf("%s: Failed in falcon boot: %d", __func__, ret);
|
||||
if (IS_ENABLED(CONFIG_SPL_OS_BOOT_SECURE))
|
||||
return ret;
|
||||
printf("Fallback to U-Boot\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user