[ipxe-devel] Surface devices having an issue with EFI timers

Sebastian Roth sebaroth at gmx.de
Sun Sep 24 21:32:05 UTC 2017

Dear iPXE devs and friends,

working in the FOGproject team we've had many people reporting an issue
when trying to boot iPXE on Surface devices. The symptom is that it just
hangs after having chainloaded a linux kernel and initrd. Probably a
hang on the exit functions I suppose. The issue has been around for
months but we didn't find the time to do more testing and therefore just
kept commit 71560d that didn't have the issue. Bisecting we figured out
that commit 757ab9 ([efi] Use a timer event to generate the
currticks...) actually broke things on the Surface.

Doing some more tests we figured out that changes in the EFI timer code
made it work in December 2016 but unfortunately it broke in January 2017
again. Please see the below list of tested commits.

757ab9 - Wed, 4 May 2016 - Hang
c917687 - Mon, 20 Jun 2016 - Hang
694c18 - Mon, 20 Jun 2016 - Hang
e09331a - Wed, 7 Dec 2016 - Hang
5cf5ffe - Wed, 7 Dec 2016 - No hang
d37e025 - Wed, 25 Jan 2017 - No hang
302f1ee - Thu, 26 Jan 2017 - wont boot at all on the surface
d46c53c - Wed, 13 Sep 2017 - Hang

I've red through the commit messages and it sounds as if the EFI timer
stuff really sucks. So I hope you don't mind me asking but would it be
possible to make iPXE properly boot on surface devices again? Commit
5cf5ffe and probably through to d37e025 were fine. It is possible but I
don't know if it would break things for other devices.

Please let me know if you need more information or if we need to do more

Thanks in advance!


More information about the ipxe-devel mailing list