[U-Boot] efi_loader: runtime services implementation broken?
Mark Kettenis
mark.kettenis at xs4all.nl
Tue Jul 3 20:24:25 UTC 2018
> From: Alexander Graf <agraf at suse.de>
> Date: Tue, 3 Jul 2018 22:08:05 +0200
>
> It's only ever been tested on ARM, so maybe the x86 Linux EFI stub
> behaves differently. If set_virtual_address_map needs to be intact after
> exiting boot services, we need to move all of the relocation information
> and functionality into runtime sections as well.
The OpenBSD EFI bootloader calls ExitBootServices() before handing
control to the kernel. The OpenBSD/arm64 kernel then calls
SetVirtualAddressmap(). This works, but probably because it happens
very early when the kernel is only using memory inside a 32M block
that has been allocated by the bootloader.
So yes, I think that functionality needs to marked as __efi_runtime.
Cheers,
Mark
More information about the U-Boot
mailing list