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