[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).
Quote:
"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
64bit."
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)?
Quote:
"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:
http://thread.gmane.org/gmane.linux.kernel.efi/3580
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
tangentially):
https://lkml.org/lkml/2014/7/14/323
I am hopping someone might eventually be able to find the source of the
problem in Syslinux.
TIA,
Ady.
[1] :
https://www.kernel.org/doc/Documentation/x86/boot.txt
[2] Extensible Firmware Interface kernel tree :
https://git.kernel.org/cgit/linux/kernel/git/mfleming/efi.git/
[3]:
efi/x86_64: leave long mode properly :
repo.or.cz/syslinux.git/commit/ae853e99a7aed22cb28b387e1e3cb32dbf1ab8fa
com32/lib/syslinux/load_linux.c: update prot_mode_base :
repo.or.cz/syslinux.git/commit/0a2dbb3392ee710838bea6bda80d4daad6b54780
load_linux: correct a type :
repo.or.cz/syslinux.git/commit/83aad4f69065509ba5b1c080edccfed316a4cff0
> _______________________________________________
> 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