On Tue, Apr 19, 2022 at 05:16:21PM -0400, Nathan Barrett-Morrison wrote: > Hi Tom, > > Let's see if this works any better. Using a new mail client that is supposed > to not modify whitespace: > > From f1c34333f79996bd2927a60f4858c01699431cba 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
Whitespace is fine, but since it's in reply to the previous email, that really throws patchwork for a loop so this doesn't show up yet. Please do this is a new thread, thanks. > > 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 c603fe61bc..08b7475e37 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 c9750ee163..7b86443f1b 100644 > --- a/common/spl/spl.c > +++ b/common/spl/spl.c > @@ -107,6 +107,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 */ > @@ -366,6 +371,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)) { > @@ -379,6 +399,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, bootdev, (const void > *)header, sizeof(*header))) > -- > 2.30.2 > > On 4/19/22 16:30, Tom Rini wrote: > > 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