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

Alexandre Ghiti
2024-06-03T09:14:54Z

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@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv