[syslinux] Syslinux Mem= greater than 4096M

Paul Bolle pebolle at tiscali.nl
Mon Feb 6 09:28:13 PST 2012


On Sun, 2012-02-05 at 23:41 -0800, H. Peter Anvin wrote:
> On 02/04/2012 04:32 AM, Gene Cumm wrote:
> > 
> > LABEL less
> >     MENU LABEL Up to 64 GB System RAM
> >     COM32 /boot/linux.c32
> >     APPEND /boot/vmlinuz-3.1.10-b1 pci=nommconf vga=773 mem=4352M
> > initrd=/boot/initrd-3.1.10-b1.img
> > 
> > I'd guess this will give similar results but if you used mem=4097M it
> > will likely succeed.
> > 
> 
> This is probably a 32-bit wraparound problem in the Syslinux core.

0) When I had to look at what could cause this in syslinux I found this:
- core/runkernel.inc:657:         cmd_opt "mem=", opt_mem

- core/runkernel.inc:158:opt_mem:
                    :159:                call parseint_esdi

- core/getc.inc:407:parseint_esdi:
               [...]
               :412:              call parseint

- core/getc.inc:254:parseint:
               [...]
               :319:.isg:         shl ebx,10              ; * 2^30
               :320:.ism:         shl ebx,10              ; * 2^20
               :321:.isk:         shl ebx,10              ; * 2^10

1) So there should be a wraparound for (in this case) options of "4096M"
and higher.

2) Not sure if this can explain all effects mentioned in this thread so
far, though.


Paul Bolle




More information about the Syslinux mailing list