[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