Hi Marek, On Fri, 21 Nov 2025 at 10:34, Marek Vasut <[email protected]> wrote: > > On 11/21/25 5:20 PM, Simon Glass wrote: > > Hello Simon, > > >>> - create a new VALID_OFFSET assumption (split out from VALID_DTB) > >>> which checks offsets in fdt_next_tag() > >>> > >>> The latter might be best. It would likely be very cheap in terms of > >>> code size. In fact, I should have thought of this at the time. > >> Wouldn't it be better to not misuse libfdt ? > > > > It actually isn't a misuse. It is perfectly OK to pass an invalid > > offset and libfdt has defined behaviour in that case, absent any > > 'assumptions' we force. > > It actually isn't OK to pass in invalid offset if we compile FDT with > disabled tree validity checks.
We are saying exactly the same thing, if you read both of the above :-) > > > Remember, in Linux these checks are enabled. We added the 'assume' > > thing to reduce code size. Here you have found a situation where it > > breaks stuff, so we should back off the assumption a bit. > U-Boot also has those checks enabled, SPL does not, and things break > when OF_PLATDATA is enabled and there is no valid node associated with > the udevice. Right, so add SPL_OF_LIBFDT_ASSUME_MASK for SPL and check the code size. If it is too much, add a new level FDT_ASSUME_EXISTS before FDT_ASSUME_SANE and use that for the necessary checks (there will only be a few, from my reading of the code). REgards, Simon

