Hi, I am trying to use the syslinux API call, ax=0012h in order to boot a linux kernel image that has been loaded into RAM. 1) Has anyone used this function to boot linux? 2) The shuffle source/destination address is a linear 32 bit address? 3) Is it safe to move the 32 bit kernel code to 100000h using the shuffle moves or is syslinux using that area? 4) What areas of memory are used by syslinux and a com32 program? This is what I am doing: 1) Load the linux real mode code to 1000:0 2) Load the linux protected mode code to 200000h 3) Load the initrd image to 800000h 4) Set various entries in the linux real mode data and command line 5) Set shuffle descriptors to move the protected mode code to 100000h. 6) Call syslinux api with ax=0012 etc Machine hangs at this point or else reboots. Thanks, Andrew
Andrew Goodbody wrote:> Hi, > > I am trying to use the syslinux API call, ax=0012h in order to boot a > linux kernel image that has been loaded into RAM. > > 1) Has anyone used this function to boot linux? > 2) The shuffle source/destination address is a linear 32 bit address? > 3) Is it safe to move the 32 bit kernel code to 100000h using the > shuffle moves or is syslinux using that area? > 4) What areas of memory are used by syslinux and a com32 program?Hi there, I found a pretty serious bug in cleanup, shuffle and boot while working on the new version (3.50). The 3.50-pre* versions contains an fixed version, plus a wrapper function to boot Linux with. The wrapper function also takes care of additional shuffles that might be needed due to address space conflicts. -hpa