[RFC PATCH] arm64/efi: use stable virtual mappings for UEFI runtime services

Geoff Levand geoff.levand at linaro.org
Mon Oct 13 15:52:46 PDT 2014


Hi Ard,

On Wed, 2014-10-08 at 19:38 +0200, Ard Biesheuvel wrote:
> I haven't tested this code under kexec myself, but I have confirmed that
> the runtime services work as expected (rtc-efi and efivars). The comments
> that Mark Salter and Will Deacon gave on the id mapping patch here

I applied this patch to my kexec master branch [1] and tested a basic
kexec re-boot using the FVP_Base_AEMv8A-AEMv8A_0.8_5602 model and the
14.09 LEG EFI build.

It crashes when the 2nd stage kernel is starting up on the first
dereference of the c16 variable in uefi_init():

  c16 = early_memremap(efi.systab->fw_vendor, sizeof(vendor));
  if (c16) {
    for (i = 0; i < (int) sizeof(vendor) - 1 && *c16; ++i) {
                                                ^^^^ crashes here

early_memremap() returns 0xFFFFFFBFFBCBF618, and the dereference
starts the crash.  I did not look into it further.

[1] https://git.linaro.org/people/geoff.levand/linux-kexec.git

-Geoff





More information about the linux-arm-kernel mailing list