[syslinux] [PATCH] Fix recognition of keeppxe option

H. Peter Anvin hpa at zytor.com
Thu Jun 16 18:11:49 PDT 2016


On 06/16/16 16:24, Adam Goldman via Syslinux wrote:
> On Thu, Jun 16, 2016 at 06:20:31PM +0300, Ady via Syslinux wrote:
>> the main idea: if the LINUX directive would be capable of using / 
>> parsing "keeppxe", then it might make sense to have the same capability 
>> in linux.c32 (in addition to mboot.c32 and chain.c32).
> 
> AFAICT, the following modules lead to the syslinux_boot_linux code path:
> 
> ldlinux.c32
> lua.c32 (for boot_linux and boot_it; and run_kernel_image for Linux 
> kernels only)
> linux.c32
> gfxboot.c32
> 
>> FWIW, in Syslinux v.4.05, the entry for booting Reactos from pxelinux.0 
>> with chain.c32 is:
>>
>> COM32 chain.c32
>> APPEND file=freeldr.sys seg=0x0F80 keeppxe
>>
>> which has been failing since Syslinux v.5.+.
> 
> chain.c32 has its own code to handle keeppxe. It looks like it's passing
> the correct flag to syslinux_shuffle_boot_rm, but I wonder if the
> problem is pxelinux_scan_memory is marking the PXE region as
> SMT_TERMINAL?
> 

It shouldn't be... stubs that have to go at the end of memory are moved
there *after* chain.c32 has exited simply because there really isn't any
way for chain.c32 to know what will happen with the DOS-range memory map
until it happens.

>From what I can tell, there is a path all the way to unload_pxe(), which
then does test the flags after doing a PXE reset.  So the question is if
it is the PXE reset that fails, or if something else goes wonky.

It would be *really* helpful if someone might be able to run a version
with DEBUG enabled in core/fs/pxe/bios.c, to see what happens during PXE
exit.

	-hpa




More information about the Syslinux mailing list