On Fri, Feb 06, 2026 at 05:11:20PM +0800, Ye Li wrote:
> Hi Tom, Marek,
>
> On 1/8/2026 10:12 PM, Tom Rini wrote:
> > On Thu, Jan 08, 2026 at 07:21:10PM +0530, Anshul Dalal wrote:
> > > CC+: TI folks
> > >
> > > On Thu Jan 8, 2026 at 7:15 PM IST, Anshul Dalal wrote:
> > > > Hi all,
> > > >
> > > > On Wed Dec 3, 2025 at 1:02 AM IST, Marek Vasut wrote:
> > > > > Synchronize local copy of DTC with Linux 6.17 . This includes the
> > > > > following picked and squashed commits from Linux kernel. The squash
> > > > > was necessary, since the DTC here contains changes which were also
> > > > > part of DTC in Linux alraedy, and the squash helped resolve those
> > > > > without going back and forth with the changes.
> > > > >
> > > > > The following commits from Linux are picked:
> > > > >
> > > > > 8f324cd712df7 # scripts/dtc: consolidate include path options in
> > > > > Makefile
> > > > > b5b3d9b63b0ee # scripts/dtc: Add yamltree.c to dtc sources
> > > > > 7d97a76f226d6 # scripts/dtc: Update to upstream version
> > > > > v1.4.7-14-gc86da84d30e4
> > > > > ea6f243be74e5 # scripts/dtc: Update to upstream version
> > > > > v1.4.7-57-gf267e674d145
> > > > > 02d435d4eccd8 # scripts/dtc: Update to upstream version
> > > > > v1.5.0-23-g87963ee20693
> > > > > 6e321b7637396 # scripts/dtc: Update to upstream version
> > > > > v1.5.0-30-g702c1b6c0e73
> > > > > 9f19ec91a7a35 # scripts/dtc: dtx_diff - add color output support
> > > > > 8287d642f38d1 # scripts/dtc: Update to upstream version
> > > > > v1.5.1-22-gc40aeb60b47a
> > > > > 4c52deef9225d # scripts/dtc: Revert "yamltree: Ensure consistent
> > > > > bracketing of properties with phandles"
> > > > > 5d3827e1452ed # scripts/dtc: Remove unused makefile fragments
> > > > > 40dd266887654 # scripts/dtc: Update to upstream version
> > > > > v1.6.0-2-g87a656ae5ff9
> > > > > 8d4cf6b6acb59 # scripts/dtc: use pkg-config to include <yaml.h> in
> > > > > non-standard path
> > > > > b9bf9ace5ae90 # scripts/dtc: Update to upstream version
> > > > > v1.6.0-11-g9d7888cbf19c
> > > > > 69a883b6f5ac0 # scripts/dtc: dtx_diff - make help text formatting
> > > > > consistent
> > > > > 8f829108b8aed # scripts/dtc: only append to HOST_EXTRACFLAGS instead
> > > > > of overwriting
> > > > > b39b4342ac495 # scripts/dtc: Update to upstream version
> > > > > v1.6.0-31-gcbca977ea121
> > > > > 93c6424c486b3 # scripts: dtc: Fetch fdtoverlay.c from external DTC
> > > > > project
> > > > > 0dd574a1d75c3 # scripts/dtc: Update to upstream version
> > > > > v1.6.0-51-g183df9e9c2b9
> > > > > ec38b5df8a231 # scripts: dtc: Build fdtoverlay tool
> > > > > a0c8c431411f5 # scripts: dtc: Remove the unused fdtdump.c file
> > > > > e7dc653d4e890 # scripts/dtc: Add missing fdtoverlay to gitignore
> > > > > d2bf5d2e3f09c # scripts/dtc: Update to upstream version
> > > > > v1.6.1-19-g0a3a9d3449c8
> > > > > a60878f5532d0 # scripts/dtc: dtx_diff: remove broken example from
> > > > > help text
> > > > > 8b739d8658a9b # scripts/dtc: Call pkg-config POSIXly correct
> > > > > b6eeafa67df00 # scripts/dtc: Update to upstream version
> > > > > v1.6.1-63-g55778a03df61
> > > > > f96cc4c787588 # scripts/dtc: Update to upstream version
> > > > > v1.6.1-66-gabbd523bae6e
> > > > > 09ab9c092ef2b # scripts/dtc: Update to upstream version
> > > > > v1.7.0-93-g1df7b047fe43
> > > > > ded8a5a498f2d # scripts/dtc: Update to upstream version
> > > > > v1.7.0-95-gbcd02b523429
> > > > > ee6ff6fca7e71 # scripts/dtc: Update to upstream version
> > > > > v1.7.2-35-g52f07dcca47c
> > > > >
> > > > > This also includes forward port of U-Boot commit
> > > > > e8c2d25845c7 ("libfdt: Revert 6dcb8ba4 from upstream libfdt")
> > > > > to avoid binary size growth.
> > > > >
> > > > > Signed-off-by: Marek Vasut <[email protected]>
> > > > > ---
> > > > > Cc: Adriano Cordova <[email protected]>
> > > > > Cc: Andrew Goodbody <[email protected]>
> > > > > Cc: Christian Marangi <[email protected]>
> > > > > Cc: Heinrich Schuchardt <[email protected]>
> > > > > Cc: Ilias Apalodimas <[email protected]>
> > > > > Cc: Patrice Chotard <[email protected]>
> > > > > Cc: Sam Edwards <[email protected]>
> > > > > Cc: Simon Glass <[email protected]>
> > > > > Cc: Tom Rini <[email protected]>
> > > > > Cc: [email protected]
> > > >
> > > > We observed several boot failures on K3 platforms since the addition of
> > > > this patch at the R5 SPL stage, the issue seems to be the newly added
> > > > check for alignment in fdt_check_header in scripts/dtc/libfdt/fdt.c:95
> > > > but the binaries generated don't have 8-byte aligned FDTs.
> > > >
> > > > I have been able to reproduce the issue on AM62p EVM with a clean
> > > > working directory (this is important since any minor change to the
> > > > SPL binary size such as by the added "-dirty" tag could make the address
> > > > aligned) and GCC 13.3[1].
> > > >
> > > > Are we ensuring the fdt present in the SPL binary is properly aligned?
> >
> > Yes, the device tree must be 8-byte aligned, this is a requirement of
> > the device tree spec itself that we had been lax over until now.
> We found iMX95/iMX94 EVK boards are broken after this fdt lib update. The
> root cause is default value of CONFIG_SPL_OF_LIBFDT_ASSUME_MASK is 0xff. In
> this update, fdt_check_node_offset_ is changed as below to check the
> CONFIG_SPL_OF_LIBFDT_ASSUME_MASK. When it is 0xff, fdt_check_node_offset_
> will skip offset check.
>
>
> int fdt_check_node_offset_(const void *fdt, int offset)
> {
> - if ((offset < 0) || (offset % FDT_TAGSIZE)
> - || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE))
> + if (!can_assume(VALID_INPUT)
> + && ((offset < 0) || (offset % FDT_TAGSIZE)))
> + return -FDT_ERR_BADOFFSET;
> +
> + if (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)
> return -FDT_ERR_BADOFFSET;
>
> This cause a problem to SCMI agent uclass driver. In scmi_bind_protocols
> function, a ofnode_null() is used when creating scmi-base.0 device to bind
> with driver. This null node which has offset value -1 can successfully pass
> the fdt_check_node_offset_, so causes crash in
> device_probe()->dev_power_domain_on() when finding power-domains phandle.Thanks for the analysis. > I notice the default value of CONFIG_OF_LIBFDT_ASSUME_MASK used by u-boot is > 0. So why does SPL have different default value? Should we change the SPL > default value to 0 to align with u-boot? Otherwise, any idea for fix. In SPL we must assume a perfect device tree has been passed to us, both for design reasons (it's not a user interactively, we built it, or it came from some other firmware stack) as well as practical (performing the sanity tests would grow all platforms by several kilobytes and overflow size constraints). I think the SCMI code needs to be reworked, in short. -- Tom
signature.asc
Description: PGP signature

