[syslinux] help with module to boot Windows CE

H. Peter Anvin hpa at zytor.com
Fri Jun 1 09:18:44 PDT 2012


On 06/01/2012 07:26 AM, Giulian Vivan wrote:
> Hello!
> 
> I work for O.S. Systems with Otavio Salvador. We are trying to build a
> module for syslinux to boot a Windows CE 6.0 image.
> 
> The basic stuff is: we need to load a Windows CE image and jump to its
> entry point. The Windows CE image file (nk.bin) has its entry point is
> stored on a variable location. The first 15 bytes of the file are the image
> header. The following bytes are a contiguous list of records. The first 12
> bytes of each record are the record header and the following 'n' bytes the
> record data. The size of the data is stored on the record header. The entry
> point address of the image is stored on the last record (which have address
> == 0 and the 'data size' field stores the entry point address).
> 
> Attached to the e-mail there is the 'whole-wip.diff' file with our current
> changes to syslinux (applied over syslinux-4.06-pre2 tag).
> 
> When we test the code, we find the entry point. But syslinux fails to boot
> with 'syslinux_shuffle_boot_pm'. The symptomatic failure (we don't know if
> it's the root failure) comes from the function 'syslinux_compute_movelist'
> called from 'syslinux_do_shuffle'. The last 'printf' shown from inside
> 'syslinux_compute_movelist' is the one marked with
> "##########################", that means, seems like the appropriate error
> message would be 'Cannot find the chunk containing the critical byte\n".
> 
> We're not familiar with the syslinux code so we're having trouble to find
> out what's wrong with our code. We really appreciate if you could help us
> with this.
> 

Hi Giulian,

The shuffler code is quite complex, and for that reason it is possible
to compile it to emit detailed step-by-step debugging information.  What
you are describing sounds like a shuffler bug, so please turn on the
debugging code (-DDEBUG=1 in mk/devel.mk) and then capture the output of
the primary serial port.

If you can, I recommend doing this work in simulation, e.g. in Qemu; you
can then direct the "serial port" output to a file directly.

	-hpa



More information about the Syslinux mailing list