[PATCH v2] scripts/dtc: Update to upstream version v1.7.2-35-g52f07dcca47c
Marek Vasut
marek.vasut at mailbox.org
Tue Jan 20 11:58:56 CET 2026
On 1/20/26 11:45 AM, Jamie.Gibbons at microchip.com 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 ?
More information about the U-Boot
mailing list