Hi Rob, On Thu, 8 Apr 2021 at 05:26, Rob Herring <robh@xxxxxxxxxx> wrote: > > On Wed, Apr 7, 2021 at 10:35 AM Simon Glass <sjg@xxxxxxxxxxxx> wrote: > > > > Hi Rob, > > > > On Wed, 7 Apr 2021 at 07:07, Rob Herring <robh@xxxxxxxxxx> wrote: > > > > > > Only checking the FDT alignment in fdt_ro_probe_() means that > > > fdt_check_header() can pass, but then subsequent API calls fail on > > > alignment checks. Let's add an alignment check to fdt_check_header() so > > > alignment errors are found up front. > > > > > > Cc: Tom Rini <trini@xxxxxxxxxxxx> > > > Cc: Frank Rowand <frowand.list@xxxxxxxxx> > > > Signed-off-by: Rob Herring <robh@xxxxxxxxxx> > > > --- > > > For background, the new alignment check triggered a crash in the > > > linux kernel. Yes, we should fix the error handling, but > > > fdt_check_header() shouldn't tell us the FDT is valid only to fail > > > later on. > > > > > > Maybe we should move the check instead, but fdt_ro_probe_() and > > > fdt_check_header() already have a lot of the same checks. > > > > > > libfdt/fdt.c | 4 ++++ > > > 1 file changed, 4 insertions(+) > > > > At present U-Boot uses a 4-byte alignment, so far as I know, so this > > will break things. > > It was the u-boot folks that wanted this in the first place... Look at > the recent commits from Tom and the discussion on the list about them. OK I guess I just missed that. I recall the push-back against supporting unaligned access but not the 8-byte stuff. > > > Is this because of the need to align the memory-reservation block? > > But yes, the spec does require some sections to be 8-byte aligned > which implies the whole thing has to be. I was looking at that but from what I could tell it is not stated anywhere. In fact it is, but I missed it. I sent: https://github.com/devicetree-org/devicetree-specification/pull/43 Regards, Simon