[syslinux] [PATCH] efi: leaving long mode in kernel_jump routine

Patrick Masotta masottaus at yahoo.com
Sat Aug 8 10:04:56 PDT 2015


>>>
 > Syslinux 6.03 (efi64) fails to boot a 32-bit kernel. The way Syslinux
 > leaves long mode in kernel_jump assembly routine does not follow AMD64
 > specifications. More precisely:
 > 1. After setting a new GADT, `cs` has to be refresh by doing a long
 > jump, but it is not
 > 2. Other segments have to be updated, but they are not
 > 3. Disabling paging has to be done before disabling long mode, but the
 > implementation does the opposite
 > 
 > In most cases,  computer that tries to execute the kernel_jump routine
 > reboot (it can also hangs). This patch fixes the kernel_jump routine.
 > 
  
 Is this patch going to be yet another one that will be "lost" in the  mailing list?
 Is this patch incorrect? Not useful? Unnecessary?
<<<
It seems "it is" necessary, I'll be probably testing it next week.

>>> 
 Newer kernels are supposed to respect certain rules / standards / 
 protocols, and IF everything is done "adequately", then Syslinux (BIOS 
 / EFI*) should be able to boot such newish kernels.
<<<

AFAIK it seems this patch is even necessary for new kernels in  the case
EFI64 boots a 32 Bit kernel, right?
 
Best,
Patrick


More information about the Syslinux mailing list