[ipxe-devel] Unable to boot Linux kernel for arm64 architecture

Mark Rutland mark.rutland at arm.com
Fri Mar 17 14:09:02 UTC 2017


Hi,

On Fri, Mar 17, 2017 at 01:43:45PM +0000, Michael Brown wrote:
> On 15/03/17 16:01, Andre wrote:
> >I'm using a chain loaded iPXE (snponly.efi) via UEFI network boot.
> >If I want to boot a Linux kernel I get the following error messages and
> >the system hangs.
> >---
> >http://192.168.0.1/rescue-arm64/4.4.52/vmlinuz... ok
> >http://192.168.0.1/rescue-arm64/4.4.52/initramfs.cpio.xz... ok
> >EFI stub: Booting Linux Kernel...
> >EFI stub: Using DTB from configuration table
> >EFI stub: Exiting boot services and installing virtual address map...
> >
> >Synchronous Exception at 0x000000807C5F6B4C
> >snponly.efi loaded at 0x000000807C5EC000

Are you able to say which platform this is on?

There is one platform that I am aware of with a broken
ExitBootServices() implementation which disables the MMU, which could
trigger the above.

> iPXE relies on the UEFI firmware fixing up any unaligned accesses.
> It's possible that the kernel EFI stub disables this support before
> calling ExitBootServices().

Per the UEFI spec, firmware should have ensured that SCTLR_ELx.A == 0b0,
so that unaligned accesses are dealt with by the hardware. The Linux
kernel EFI stub doesn't touch SCTLR_ELx.A, so that should remain
working during ExitBootServices().

Is the above definitely an unaligned access? AFAICT, all we know is that
it is some kind of synchronous exception, which can encompass a number
of other cases.

Thanks,
Mark.



More information about the ipxe-devel mailing list