[syslinux] Only 2.5G of RAM available when syslinux64.efi boots 32-bit linux 686-pae

Ady ady-sf at hotmail.com
Thu Nov 26 19:01:16 PST 2015

> On Mon, Nov 23, 2015 at 3:06 PM, Ady via Syslinux <syslinux at zytor.com> wrote:
> > It saddens (me)
> > C'mon; really?
> As you asked.
> -- 
> -Gene
I appreciate the replies. Hopefully someone might be able to come up with 
some contribution / answer.

The Syslinux code has already received at some point some patches 
regarding the EFI handover protocol. Considering that the EFI handover 
protocol has evolved during time [1], I would not be surprised that the 
Syslinux code would need some update, either for the EFI handover 
protocol or for the EFISTUB code.

Please note that the case presented in this email thread makes reference 
to a "3.6" 32-bit PAE kernel, while the current latest EFI handover 
protocol got updated after that, in later kernel versions (at least 
kernel v.3.8).

"Protocol 2.12: (Kernel 3.8) Added the xloadflags field and extension 
fields to struct boot_params for loading bzImage and ramdisk above 4G in 

Question for (kernel) developers: Could APPENDing the "add_efi_memmap" 
kernel option be involved in allowing the whole RAM to be seen by a 
32-bit PAE kernel (booted by syslinux.efi X64)?

"add_efi_memmap include EFI memory map of available physical RAM"

As of today, the "Extensible Firmware Interface kernel tree" [2] 
repository (maintained by Matt Fleming) has been receiving updates up 
until this same week (incidentally, including updates to the 
documentation regarding the "EFI memory region"). A somewhat rhetorical 
question: when was the last time the related code in Syslinux was patched 
(see [3])? A potential need to update the Syslinux code regarding this 
matter should not be a complete surprise.

Considering that the PAE feature for 32-bit kernels should allow 
allocations of RAM > 2^32 (~4GB) even in EFI, isn't it possible that the 
Syslinux code might be mixing / missing some variable (type)?

Isn't it possible that we are assuming that a UEFI x64 system with more 
than 4GB of RAM would not be (ever) booting a 32-bit PAE kernel, and 
thus, we would not be contemplating such case in the code?

FWIW (or, as generic examples, or of potential interest)...

Although not necessarily / explicitly covering our current particular 
case, the following email thread (2014Mar) is about "EFI mixed mode". 
Incidentally, "PAE" is also part of the conversation:

I cannot help but wonder whether a set of patches under the title "EFI 
urgent fixes" might have some importance for the Syslinux code (at least 

I am hopping someone might eventually be able to find the source of the 
problem in Syslinux.


 [1] :

 [2] Extensible Firmware Interface kernel tree :

 efi/x86_64: leave long mode properly :

 com32/lib/syslinux/load_linux.c: update prot_mode_base :

 load_linux: correct a type :

> _______________________________________________
> Syslinux mailing list
> Submissions to Syslinux at zytor.com
> Unsubscribe or set options at:
> http://www.zytor.com/mailman/listinfo/syslinux

More information about the Syslinux mailing list