On Wed, Feb 02, 2022 at 04:53:11PM -0500, Nathan Barrett-Morrison wrote: > Hi Tom, > > I've attached version 2 of the patch. I believe this should adhere more > closely to your suggestions. > > Keep in mind, CONFIG_IS_ENABLED will not work for checking > CMD_BOOTI/CMD_BOOTZ in this case, as there is no CONFIG_SPL_CMD_BOOTx. So, > I'm just directly checking if it's defined instead. > > I verified both CONFIG_IS_ENABLED() and IS_ENABLED() did not work. > > Sincerely, > Nathan > > On Mon, Jan 31, 2022 at 10:35 AM Tom Rini <tr...@konsulko.com> wrote: > > > On Mon, Jan 31, 2022 at 10:23:58AM -0500, Nathan Barrett-Morrison wrote: > > > > > Hi Tom, > > > > > > Yea, I'm not sure if uncompressed ARM32 would work, but I don't believe > > it > > > was ever working to begin with... as bootz_setup is being called right > > now > > > ( @ > > https://source.denx.de/u-boot/u-boot/-/blob/master/common/spl/spl.c#L366 > > > ) > > > > > > My intent was for SPL_OS_BOOT_UNCOMPRESSED to only be used for platforms > > > which need booti_setup (ARM64, ...). > > > > > > So... I could add a dependency on ARM64 in the config option or I could > > > remove the option altogether and let the booti_setup fail and fallback to > > > bootz_setup. Would either of those work for you? > > > > The code and logic overall needs a bit of refactoring to support > > "booti", "bootz" and also FIT images. I believe FIT images are how > > anyone doing falcon mode on arm64 has worked thus far. booti/bootz > > should only be an option when CMD_BOOTI/Z is set, and FIT should depend > > on SPL_LOAD_FIT already. > > > > -- > > Tom > >
> From 5d37f2a930e7cb3455b6ec925ec6e67b40d4c022 Mon Sep 17 00:00:00 2001 > From: Nathan Barrett Morrison <nathan.morri...@timesys.com> > Date: Wed, 2 Feb 2022 15:05:18 -0500 > Subject: [PATCH v2] 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 > images (i.e. ARM64). This is only used while not booting via FIT image. > > Signed-off-by: Nathan Barrett-Morrison <nathan.morri...@timesys.com> > Cc: Tom Rini <tr...@konsulko.com> > --- > Changes for v2: > - Remove original SPL_OS_BOOT_UNCOMPRESSED option and check via CMD_BOOTI > and CMD_BOOTZ instead > > arch/arm/lib/Makefile | 5 ++++- > common/spl/spl.c | 21 +++++++++++++++++++++ > 2 files changed, 25 insertions(+), 1 deletion(-) > > diff --git a/arch/arm/lib/Makefile b/arch/arm/lib/Makefile > index c48e1f622d..57e49f69f7 100644 > --- a/arch/arm/lib/Makefile > +++ b/arch/arm/lib/Makefile > @@ -36,7 +36,10 @@ 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 > +ifdef CONFIG_SPL_FRAMEWORK > +obj-$(CONFIG_CMD_BOOTI) += image.o > +obj-$(CONFIG_CMD_BOOTZ) += zimage.o > +endif > obj-$(CONFIG_OF_LIBFDT) += bootm-fdt.o > endif > ifdef CONFIG_ARM64 > diff --git a/common/spl/spl.c b/common/spl/spl.c > index f51d1f3205..1f6b3f1ac8 100644 > --- a/common/spl/spl.c > +++ b/common/spl/spl.c > @@ -104,6 +104,11 @@ int __weak bootz_setup(ulong image, ulong *start, ulong > *end) > { > return 1; > } > + > +int __weak booti_setup(ulong image, ulong *relocated_addr, ulong *size, bool > force_reloc) > +{ > + return 1; > +} > #endif > > /* Weak default function for arch/board-specific fixups to the > spl_image_info */ > @@ -354,6 +359,21 @@ int spl_parse_image_header(struct spl_image_info > *spl_image, > #endif > > #if CONFIG_IS_ENABLED(OS_BOOT) > +#if defined(CMD_BOOTI) > + ulong start, size; > + > + if (!booti_setup((ulong)header, &start, &size, 0)) { > + spl_image->name = "Linux"; > + spl_image->os = IH_OS_LINUX; > + spl_image->load_addr = start; > + spl_image->entry_point = start; > + spl_image->size = size; > + debug(SPL_TPL_PROMPT > + "payload Image, load addr: 0x%lx size: %d\n", > + spl_image->load_addr, spl_image->size); > + return 0; > + } > +#elif defined(CMD_BOOTZ) > ulong start, end; > > if (!bootz_setup((ulong)header, &start, &end)) { > @@ -367,6 +387,7 @@ int spl_parse_image_header(struct spl_image_info > *spl_image, > spl_image->load_addr, spl_image->size); > return 0; > } > +#endif > #endif > > if (!spl_parse_board_header(spl_image, (const void *)header, > sizeof(*header))) Sorry for the late response. Attached patches aren't picked up by patchwork. I think this looks OK, but can you please re-send it directly rather than as attachment? Thanks. -- Tom
signature.asc
Description: PGP signature