[Bug 202455] [EFI] boot/loader.efi: ExitBootServices() returned 0x8000000000000002
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Wed Aug 19 10:31:07 UTC 2015
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=202455
Bug ID: 202455
Summary: [EFI] boot/loader.efi: ExitBootServices() returned
0x8000000000000002
Product: Base System
Version: 11.0-CURRENT
Hardware: amd64
OS: Any
Status: New
Severity: Affects Many People
Priority: ---
Component: kern
Assignee: freebsd-bugs at FreeBSD.org
Reporter: ganael.laplanche at corp.ovh.com
Created attachment 160058
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=160058&action=edit
patch-sys-boot-efi-loader-arch-amd64-elf64_freebsd.c
Hi,
As written here: https://wiki.freebsd.org/UEFI, "this issue is still
encountered on some hardware.".
Indeed, I have been able to reproduce the error on a physical machine
(Supermicro X9SRi-F motherboard) when netbooting loader.efi over PXE.
On that machine, this only happens when booting over PXE. I have absolutely no
problem booting locally (so is the MapKey change causing the error related to
the efinet layer ?).
The UEFI specification advises to call ExitBootServices() again if the first
call failed, after having updated the MapKey with a call to GetMemoryMap() just
before the second ExitBootServices() call [1]. The FreeBSD loader only performs
a single attempt and gives up if it fails.
Find attached a patch (for amd64, against -CURRENT r286279) that implements
this second attempt to hand over control to the kernel. It will probably be
necessary to implement the same behaviour for other archs too.
With this patch, my machine can boot over PXE in UEFI mode.
Best regards,
Ganael.
[1] UEFI Specification Version v2.5, p221:
http://www.uefi.org/sites/default/files/resources/UEFI%202_5.pdf
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list