[PATCH v2] scripts/dtc: Update to upstream version v1.7.2-35-g52f07dcca47c

Marek Vasut marek.vasut at mailbox.org
Mon Jan 19 20:48:01 CET 2026


On 1/19/26 6:12 PM, Jamie.Gibbons at microchip.com wrote:

Hello Jamie,

>>> The error is: failed on fdt_open_into for DTO, i.e. overlay
>>> application
>>> fdt error. This was introduced by 0535e46d55d scripts/dtc: Update
>>> to
>>> upstream version v1.7.2-35-g52f07dcca47c, i.e. this patch. Please
>>> see
>>> the attached log which includes a `printenv` attached.
>> Does this fix your problem ?
>>
>> diff --git a/boot/image-fit.c b/boot/image-fit.c
>> index 2d040e38d97..1163e837d7e 100644
>> --- a/boot/image-fit.c
>> +++ b/boot/image-fit.c
>> @@ -2491,7 +2491,7 @@ int boot_get_fdt_fit(struct bootm_headers
>> *images,
>> ulong addr,
>>                   ov = map_sysmem(ovload, ovlen);
>>
>>                   ovcopylen = ALIGN(fdt_totalsize(ov), SZ_4K);
>> -               ovcopy = malloc(ovcopylen);
>> +               ovcopy = memalign(8, ovcopylen);
>>                   if (!ovcopy) {
>>                           printf("failed to duplicate DTO before
>> application\n");
>>                           fdt_noffset = -ENOMEM;
>>
> Apologies for the delayed response. The above proposed solution did not
> change/fix the issue. Any other suggestions would be greatly
> appreciated.
Look at this piece of code in boot/image-fit.c :

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 ?


More information about the U-Boot mailing list