On Sat, Mar 06, 2021 at 02:35:21PM -0700, Rob Herring wrote: > On Sat, Mar 6, 2021 at 1:45 AM Thomas Bogendoerfer > <tsbogend@xxxxxxxxxxxxxxxx> wrote: > > > > On Wed, Mar 03, 2021 at 02:37:55PM -0600, Rob Herring wrote: > > > On Wed, Mar 3, 2021 at 1:33 PM Paul Cercueil <paul@xxxxxxxxxxxxxxx> wrote: > > > > > > > > Since 5.12-rc1, the Device Tree blob must now be properly aligned. > > > > > > I had checked the other built-in cases as microblaze broke too, but > > > missed some of the many ways MIPS can have a dtb. Appended and > > > built-in DTBs were supposed to be temporary. :( > > > > and a fdt can also be provided by firmware. And according to spec > > there is no aligmnet requirement. So this whole change will break > > then. What was the reason for the whole churn ? > > There was a long discussion on devicetree-compiler list a few months > ago. In summary, a while back libfdt switched to accessors from raw > pointer accesses to avoid any possible unaligned accesses (is MIPS > always okay with unaligned accesses?). no, it will trap unaligned accesses, that's the reason for Paul's problem. > This was determined to be a > performance regression and an overkill as the DT structure itself > should always be naturally aligned if the dtb is 64-bit aligned. I > think 32-bit aligned has some possible misaligned accesses. the access macros are using *(unsigned long long *), which isn't even nice for 32bit CPUs... > As part of this, a dtb alignment check was added. So worst case, we > could disable that if need be. yeah, or override fdt32/64_to_cpu, if I understood the code correctly. Thomas. -- Crap can work. Given enough thrust pigs will fly, but it's not necessarily a good idea. [ RFC1925, 2.3 ]