[PATCH 0/1] use RT_PROPERTIES table to implement efi=novamap
Ard Biesheuvel
ardb at kernel.org
Fri Mar 5 11:44:30 GMT 2021
On Fri, 5 Mar 2021 at 10:40, Ard Biesheuvel <ardb at kernel.org> wrote:
>
> This patch addresses an oversight on my part when I implemented Linux
> side support for the EFI RT properties table: SetVirtualAddressMap() is
> itself a runtime service which is only callable at runtime to begin with,
> and so the EFI stub should only call it if it is not marked as unsupported.
>
> This may be useful for the Snapdragon EFI based laptops, which already rely
> on a special EFI driver to expose the correct DT based on metadata exposed
> by EFI. These systems ship with a broken implementation of SetVirtualAddressMap,
> which is currently being worked around by passing efi=novamap on the kernel.
> command line.
>
> After applying this patch (which I intend to propose for backporting to 5.10),
> the same can be achieved by exposing a RT_PROP table that marks SetVAMap() as
> unsupported. And while at it, better mark the variable services as unsupported
> as well, since they don't work under Linux either.
>
> I'm open to extending this with a Linux specific override value kept in a
> EFI variable, so that platforms that cannot support DtbLoader are able to
> implement something similar.
>
... or perhaps even in a DT property that gets AND'ed with the
supported RT services mask bu the EFI stub before it boots the kernel
proper.
More information about the linux-arm-kernel
mailing list