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. Rob