Re: [PATCH v3 2/3] arm64: implement update_fdt_pgprot()

From: Rob Herring
Date: Thu May 16 2019 - 10:39:18 EST


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