Re: [PATCH 2/3] riscv: Remove non-standard linux,elfcorehdr handling

From: Nick Kossifidis
Date: Fri Jul 02 2021 - 11:57:12 EST


Στις 2021-07-01 05:52, Palmer Dabbelt έγραψε:
On Wed, 16 Jun 2021 07:47:46 PDT (-0700), robh+dt@xxxxxxxxxx wrote:
On Wed, Jun 16, 2021 at 4:43 AM Nick Kossifidis <mick@xxxxxxxxxxxx> wrote:

Στις 2021-06-16 10:56, Geert Uytterhoeven έγραψε:
>
> I can't comment on the duplication on arm64, but to me, /chosen
> sounds like the natural place for both "linux,elfcorehdr" and
> "linux,usable-memory-range". First rule of DT is "DT describes
> hardware, not software policy", with /chosen describing some software
> configuration.
>

We already have "linux,usable-memory" on /memory node:
https://elixir.bootlin.com/linux/v5.13-rc6/source/drivers/of/fdt.c#L1011
and it makes perfect sense to be there since it overrides /memory's reg
property.

Why define another binding for the same thing on /chosen ?

Go look at the thread adding "linux,usable-memory-range". There were
only 35 versions of it[1]. I wasn't happy with a 2nd way either, but
as I've mentioned before we don't always have /memory node.

I don't really understand what's going on here, but IIUC what I merged
in 5.13 doesn't match the behavior that other architectures have. In
that case I'm happy moving RISC-V over to the more standard way of
doing things and just calling what we have in 5.13 a screwup.

Sorry for the confusion.

Long story short:

a) We use "linux,usable-memory" on /memory node to limit the memory of the kdump kernel, it's a standard binding defined at:
https://elixir.bootlin.com/linux/v5.13-rc6/source/drivers/of/fdt.c#L1011

b) We used a reserved region (again a standard binding) named "linux,elfcorehdr" which has the same name as a property on /chosen used by arm64 for the same thing. With this patch we 'll use arm64's approach, although it's a bit worse since we'll need to add the same region twice on the fdt (once in /chosen as a property and another one in the reservation map so that it gets reserved during early boot).

Fortunately I (still) haven't posted the kexec-tools patches on the mailing list so we don't break userspace by doing this.