[RFC PATCH v1 4/4] cmd: Kconfig: disable loading raw images in secure os boot

Tom Rini trini at konsulko.com
Fri Jun 27 02:00:58 CEST 2025


On Fri, Jun 27, 2025 at 05:23:59AM +0530, Anshul Dalal wrote:
> On Fri Jun 27, 2025 at 5:17 AM IST, Tom Rini wrote:
> > On Thu, Jun 26, 2025 at 05:34:42PM +0530, Anshul Dalal wrote:
> >
> >> Raw kernel images can not be authenticated so disable loading such
> >> binaries in secure falcon mode. This change restricts the falcon mode
> >> SPL to FIT as the only viable boot image which can be authenticated.
> >> 
> >> Signed-off-by: Anshul Dalal <anshuld at ti.com>
> >> ---
> >>  cmd/Kconfig | 3 ++-
> >>  1 file changed, 2 insertions(+), 1 deletion(-)
> >> 
> >> diff --git a/cmd/Kconfig b/cmd/Kconfig
> >> index ed741d43cea..8eb55dd7f6e 100644
> >> --- a/cmd/Kconfig
> >> +++ b/cmd/Kconfig
> >> @@ -353,12 +353,13 @@ config BOOTM_ELF
> >>  
> >>  config CMD_BOOTZ
> >>  	bool "bootz"
> >> +	depends on !SPL_SECURE_OS_BOOT
> >>  	help
> >>  	  Boot the Linux zImage
> >>  
> >>  config CMD_BOOTI
> >>  	bool "booti"
> >> -	depends on ARM64 || RISCV || SANDBOX
> >> +	depends on (ARM64 || RISCV || SANDBOX) && !SPL_SECURE_OS_BOOT
> >>  	default y
> >>  	help
> >>  	  Boot an AArch64 Linux Kernel image from memory.
> >
> > This is just pushing things too far and we need to step back and fix it,
> > sorry. We need BOOTZ_IMAGE_FORMAT and BOOTI_IMAGE_FORMAT to go with
> > LEGACY_IMAGE_FORMAT, and then SPL_... variants too, and then use those
> > symbols.
> 
> I can respin one of my earlier patch series[1] that migrated these
> CMD_BOOTx symbols to SPL. But we should still disable those new symbols
> to prevent loading of unverifiable raw kernel images in secure os boot
> right?
> 
> [1]: https://lore.kernel.org/u-boot/20250408141436.712387-1-anshuld@ti.com/

I think I wasn't clear enough, sorry. We need in boot/Kconfig:

config BOOTZ_IMAGE_FORMAT
  bool
  help
    Support for the Linux Kernel "zImage" format on 32bit ARM systems.

config BOOT_IMAGE_FORMAT
  bool
  help
    Support for the Linux Kernel "Image" format found on 64bit ARM
    systems, RISC-V and other architectures within the Linux Kernel.

...
config SYS_BOOTM_LEN
  ...
  depends on ... BOOTZ_IMAGE_FORMAT || SPL_BOOTZ_IMAGE_FORMAT ...


in cmd/Kconfig
config CMD_BOOTZ
  bool ...
  depends on BOOTZ_IMAGE_FORMAT

And then code / Makefiles outside of the command should use the
appropriate new symbol. arch/arm/lib/Makefile for example:
obj-$(CONFIG_$(PHASE_)BOOTZ_IMAGE_FORMAT) += zimage.o
obj-$(CONFIG_$(PHASE_)BOOTI_IMAGE_FORMAT) += image.o

And then yes, the SPL variants need to depend on !SPL_OS_BOOT_SECURE

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20250626/4a817ee9/attachment.sig>


More information about the U-Boot mailing list