Hi all,

Continuing from the last series[1], this patch series addresses the requirement
of allowing no fallbacks in secure falcon mode.

To do this in a clean way, all the falcon mode logic for each boot media was
refactored to a corresponding *_load_image_os function whereas the regular
boot is implemented in *_load_image, this allows us to easily return early in
case the *_load_image_os function fails with secure mode enabled.

The series also introduces the new SPL_OS_BOOT_SECURE config symbol which
enables secure falcon boot flow.

The generic flow after the patch series looks as follows:

        static int spl_<bootmedia>_load_image(...) {
                if (CONFIG_IS_ENABLED(OS_BOOT)) {

                        ret = spl_<bootmedia>_load_image_os(...);

                        puts("Failcon mode failed\n");
                        if (CONFIG_IS_ENABLED(OS_BOOT_SECURE)) {
                                puts("no fallback allowed!\n");
                                return ret;
                        }

                        puts("Falling back to U-Boot\n");
                }

                /* Regular boot flow */
        }

Regards,
Anshul

[1]: https://lore.kernel.org/u-boot/20250923124639.667718-1-ansh...@ti.com/
Depends-on: 
https://lore.kernel.org/u-boot/20250923124639.667718-1-ansh...@ti.com/
---
Changes in v2:
 - Remove extra printf to address SPL size concerns

v1: https://lore.kernel.org/u-boot/20250916105857.163951-1-ansh...@ti.com/
---
Anshul Dalal (8):
  spl: Kconfig: add SPL_OS_BOOT_SECURE config symbol
  spl: Kconfig: allow K3 devices to use falcon mode
  spl: mmc: split spl_mmc_do_fs_boot into regular/os_boot
  spl: ubi: refactor spl_ubi_load_image for falcon mode
  spl: spi: refactor spl_spi_load_image for falcon mode
  spl: nor: refactor spl_nor_load_image for falcon mode
  spl: nand: refactor spl_nand_load_image for falcon mode
  spl: falcon: disable fallback to U-Boot on failure

 common/spl/Kconfig    |  10 +++-
 common/spl/spl_mmc.c  |  81 ++++++++++++++++++++------------
 common/spl/spl_nand.c |  96 +++++++++++++++++++++-----------------
 common/spl/spl_nor.c  | 104 ++++++++++++++++++++++++------------------
 common/spl/spl_spi.c  |  31 ++++++++++---
 common/spl/spl_ubi.c  |  43 ++++++++++++-----
 6 files changed, 229 insertions(+), 136 deletions(-)

-- 
2.51.0

Reply via email to