On 1/20/26 3:56 PM, [email protected] wrote:
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.
Thank you !