On Sat, Feb 07, 2026 at 12:24:30PM +0800, Ye Li wrote:
> 
> 
> On 2/6/2026 10:28 PM, Tom Rini wrote:
> > 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.
> > 
> Thanks for explanation. It is reasonable to have 0xff as default for SPL.
> For SCMI, because its base protocol(0x10) is mandatory, there is no dts node
> for this protocol. So SCMI agent uclass driver dynamically creates a device
> for base protocol with null node. See commit (7eb4eb541c1 firmware: scmi:
> install base protocol to SCMI agent). This implementation seems also proper.
> Do you think if we should set CONFIG_SPL_OF_LIBFDT_ASSUME_MASK to 0 when
> SCMI is used?

It's also a massive hit on boot time and I know that will be a
regression on some SCMI using platforms. So no, we need to figure out
hwo to rework the code.

-- 
Tom

Attachment: signature.asc
Description: PGP signature

Reply via email to