
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@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@timesys.com Cc: Tom Rini trini@konsulko.com Cc: Aneesh V aneesh@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.