Re: [PATCH v0] RISC-V: Use Zkr to seed KASLR base address

From: Alexandre Ghiti
Date: Mon Jun 03 2024 - 05:15:05 EST


Hi Conor,

On 31/05/2024 19:31, Conor Dooley wrote:
On Fri, May 31, 2024 at 12:23:27PM -0400, Jesse Taube wrote:
Dectect the Zkr extension and use it to seed the kernel base address.

Detection of the extension can not be done in the typical fashion, as
this is very early in the boot process. Instead, add a trap handler
and run it to see if the extension is present.
You can't rely on the lack of a trap meaning that Zkr is present unless
you know that the platform implements Ssstrict. The CSR with that number
could do anything if not Ssstrict compliant, so this approach gets a
nak from me. Unfortunately, Ssstrict doesn't provide a way to detect
it, so you're stuck with getting that information from firmware.


FYI, this patch is my idea, so I'm the one to blame here :)



For DT systems, you can actually parse the DT in the pi, we do it to get
the kaslr seed if present, so you can actually check for Zkr. With ACPI
I have no idea how you can get that information, I amn't an ACPI-ist.


I took a look at how to access ACPI tables this early when implementing the Zabha/Zacas patches, but it seems not possible.

But I'll look into this more, this is not the first time we need the extensions list very early and since we have no way to detect the presence of an extension at runtime, something needs to be done.

Thanks,

Alex



Thanks,
Conor.

_______________________________________________
linux-riscv mailing list
linux-riscv@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/linux-riscv