Falcon Mode Support For Uncompressed Kernel Images

Tom Rini trini at konsulko.com
Mon Jan 31 16:11:24 CET 2022


On Mon, Jan 17, 2022 at 07:58:00PM -0500, Nathan Barrett-Morrison wrote:
> Hi All,
> 
> While trying to bring up Falcon Mode boot on an ARM64 board, I discovered
> that there is no path which allows you to use an uncompressed kernel image
> (booti).  I've added this path and attached the relevant patch.
> 
> I've made this a separate if/else CONFIG option instead of allowing both
> bootz+booti paths to coexist, as it seems unlikely to me that there would
> be such a board which needs both.  Most architectures use either bootz or
> booti, but not both.
> 
> Sincerely,
> Nathan Barrett-Morrison

> From d5542ccc2d4f81ac0442be8ca772a99e1a13b6dd Mon Sep 17 00:00:00 2001
> From: Nathan Barrett-Morrison <nathan.morrison at timesys.com>
> Date: Mon, 17 Jan 2022 19:42:10 -0500
> Subject: [PATCH] Add in the ability to load and boot an uncompressed
>  kernel image during the Falcon Mode boot sequence.  This is required for
>  architectures which do not support compressed kernel image booting (i.e.,
>  ARM64)
> 
> Signed-off-by: Nathan Barrett-Morrison <nathan.morrison at timesys.com>
> Cc: Tom Rini <trini at konsulko.com>
> Cc: Aneesh V <aneesh at ti.com>
> ---
>  arch/arm/lib/Makefile |  2 +-
>  common/spl/Kconfig    |  6 ++++++
>  common/spl/spl.c      | 21 +++++++++++++++++++++
>  3 files changed, 28 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/lib/Makefile b/arch/arm/lib/Makefile
> index c48e1f622d..24c9e3c1e5 100644
> --- a/arch/arm/lib/Makefile
> +++ b/arch/arm/lib/Makefile
> @@ -36,7 +36,7 @@ obj-$(CONFIG_CMD_BOOTZ) += bootm.o zimage.o
>  obj-$(CONFIG_SYS_L2_PL310) += cache-pl310.o
>  else
>  obj-$(CONFIG_$(SPL_TPL_)FRAMEWORK) += spl.o
> -obj-$(CONFIG_SPL_FRAMEWORK) += zimage.o
> +obj-$(CONFIG_SPL_FRAMEWORK) += zimage.o image.o
>  obj-$(CONFIG_OF_LIBFDT) += bootm-fdt.o
>  endif
>  ifdef CONFIG_ARM64
> diff --git a/common/spl/Kconfig b/common/spl/Kconfig
> index 4a739a7421..6d2ddddc9f 100644
> --- a/common/spl/Kconfig
> +++ b/common/spl/Kconfig
> @@ -917,6 +917,12 @@ config SYS_OS_BASE
>  	  Specify the address, where the OS image is found, which
>  	  gets booted.
>  
> +config SPL_OS_BOOT_UNCOMPRESSED
> +	bool "Use uncompressed kernel image alongside Falcon Mode"
> +	depends on SPL_SPI_LOAD
> +	help
> +	  Use an uncompressed kernel image to boot.  This is targetting
> +	  architectures which use booti instead of bootz (i.e, ARM64).
>  endif # SPL_OS_BOOT

We shouldn't need another CONFIG option here, and this would then I
believe fail to boot uncompressed arm32 images.  The real problem I
think is that the code assumed bootm/bootz but needs to instead be more
explicit in checking / supporting each and then also yes, adding booti
support.  Following up with also supporting compressed Images may or may
not take additional logic, I'm not sure off-hand.

-- 
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/20220131/6e1620f2/attachment.sig>


More information about the U-Boot mailing list