On Tue, 2026-01-20 at 15:53 +0100, Marek Vasut wrote: > EXTERNAL EMAIL: Do not click links or open attachments unless you > know the content is safe > > On 1/20/26 3:50 PM, [email protected] wrote: > > On Tue, 2026-01-20 at 15:32 +0100, Marek Vasut wrote: > > > EXTERNAL EMAIL: Do not click links or open attachments unless you > > > know the content is safe > > > > > > On 1/20/26 2:53 PM, [email protected] wrote: > > > > Hi Marek, > > > > > > > > On Tue, 2026-01-20 at 11:58 +0100, Marek Vasut wrote: > > > > > EXTERNAL EMAIL: Do not click links or open attachments unless > > > > > you > > > > > know the content is safe > > > > > > > > > > On 1/20/26 11:45 AM, [email protected] wrote: > > > > > > > > > > Hello Jamie, > > > > > > > > > > > > 2489 debug("%s loaded at 0x%08lx > > > > > > > len=0x%08lx\n", > > > > > > > 2490 uname, ovload, > > > > > > > ovlen); > > > > > > > 2491 ov = map_sysmem(ovload, ovlen); > > > > > > > 2492 > > > > > > > 2493 ovcopylen = ALIGN(fdt_totalsize(ov), > > > > > > > SZ_4K); > > > > > > > 2494 ovcopy = memalign(8, ovcopylen); > > > > > > > 2495 if (!ovcopy) { > > > > > > > 2496 printf("failed to duplicate > > > > > > > DTO > > > > > > > before > > > > > > > application\n"); > > > > > > > 2497 fdt_noffset = -ENOMEM; > > > > > > > 2498 goto out; > > > > > > > 2499 } > > > > > > > 2500 > > > > > > > 2501 err = fdt_open_into(ov, ovcopy, > > > > > > > ovcopylen); > > > > > > > 2502 if (err < 0) { > > > > > > > 2503 printf("failed on > > > > > > > fdt_open_into > > > > > > > for > > > > > > > DTO\n"); > > > > > > > > > > > > > > This is where it fails. Is $ov or $ovcopy 4-byte aligned > > > > > > > ? > > > > > > > Enable > > > > > > > the > > > > > > > debug() print at the beginning (or #define DEBUG at the > > > > > > > beginning > > > > > > > of > > > > > > > this file) to find out. > > > > > > > > > > > > > > If $ov is 4-byte aligned, try to generate your fitImage > > > > > > > with > > > > > > > "mkimage > > > > > > > ... -E -B 8 ..." , does that make any difference ? > > > > > > > > > > > > Thank you for your suggestions. > > > > > > > > > > > > I followed your advice and investigated the alignment of > > > > > > the > > > > > > overlay > > > > > > buffer. The error code returned by fdt_open_into was > > > > > > FDT_ERR_ALIGNMENT > > > > > > (-19), confirming that the overlay was not sufficiently > > > > > > aligned > > > > > > for > > > > > > the > > > > > > updated libfdt. > > > > > > > > > > > > I modified our Buildroot post-image.sh script to generate > > > > > > the > > > > > > FIT > > > > > > image > > > > > > using the suggested arguments. With the -B 8 option, all > > > > > > blobs > > > > > > in > > > > > > the > > > > > > FIT image are now 8-byte aligned. This resolved the > > > > > > alignment > > > > > > error, > > > > > > and device tree overlays are now applied successfully in U- > > > > > > Boot. > > > > > > > > > > But this is not the fix. Which parameter of fdt_open_into() > > > > > is > > > > > unaligned, the ov or ovcopy ? > > > > > > > > ov is unaligned > > > Does this help even without the mkimage -B 8 ? > > > > > > diff --git a/boot/image-fit.c b/boot/image-fit.c > > > index 2d040e38d97..49fdc1f0535 100644 > > > --- a/boot/image-fit.c > > > +++ b/boot/image-fit.c > > > @@ -2481,7 +2481,7 @@ int boot_get_fdt_fit(struct bootm_headers > > > *images, > > > ulong addr, > > > addr, &uname, &uconfig, > > > arch, IH_TYPE_FLATDT, > > > BOOTSTAGE_ID_FIT_FDT_START, > > > - FIT_LOAD_IGNORED, &ovload, &ovlen); > > > + FIT_LOAD_OPTIONAL_NON_ZERO, &ovload, > > > &ovlen); > > > if (ov_noffset < 0) { > > > printf("load of %s failed\n", uname); > > > continue; > > This solution removed this misalignment in ov and allowed the > > system to > > boot - without any change/additional arguments to mkimage. > Would you be willing to submit this as a bugfix ? Yes, no problem. I will do so.
Thanks again for your help, Jamie.

