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

Marek Vasut marek.vasut at mailbox.org
Tue Jan 20 15:32:43 CET 2026


On 1/20/26 2:53 PM, Jamie.Gibbons at microchip.com 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, 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 ?
> 
> 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;


More information about the U-Boot mailing list