On Thu, 16 May 2019 at 16:37, Rob Herring <robh+dt@xxxxxxxxxx> wrote: > > On Thu, May 16, 2019 at 5:28 AM Hsin-Yi Wang <hsinyi@xxxxxxxxxxxx> wrote: > > > > Basically does similar things like __fixmap_remap_fdt(). It's supposed > > to be called after fixmap_remap_fdt() is called at least once, so region > > checking can be skipped. Since it needs to know dt physical address, make > > a copy of the value of __fdt_pointer. > > > > Signed-off-by: Hsin-Yi Wang <hsinyi@xxxxxxxxxxxx> > > --- > > arch/arm64/kernel/setup.c | 2 ++ > > arch/arm64/mm/mmu.c | 17 +++++++++++++++++ > > 2 files changed, 19 insertions(+) > > Why not just map the FDT R/W at the start and change it to RO just > before calling unflatten_device_tree? Then all the FDT scanning > functions or any future fixups we need can just assume R/W. That is > essentially what Stephen suggested. However, there's no need for a > weak function as it can all be done within the arch code. > > However, I'm still wondering why the FDT needs to be RO in the first place. > It was RO because it could be RO, and we wanted to ensure that it didn't get modified inadvertently (hence the CRC check we added as well) If there is a need for the FDT to be RW, let's make it RW.