then you are not fast enough. After the PDA has been powered on (using the hard reset slidder, at the bottom), you have a window of about 1 second to run bsrflash, or the WinCE loader will kind of rellocate the flash so that it is no longer available at 0x0 (we still have to figure how it does that, and how to work around this feature).

When dumping the flash, Ian suggests that you dump it a second time and cmp(1) the two files to check for transfers glitches (JTAG has no CRC or whatsoever). If they differ, then:

check cabling:

a parallel cable (from adapter to PC) longer than 1m could be problematic (mine is 80cm),

a long JTAG lead (from PDA to adapter) could also cause grief (mine is 30cm),

all in all, try keeping the total length below 1.5m;

dump a third time:

if two of the three files match, then those two are most probably OK (the odds that two consecutive reads give the same error at the same address is low enough),

if the three files differ, then you really have a cabling problem;

Ian and I came up with a set of patches to make bsrflash more robust; apply them all in order:

If you applied the patch set above, then usage of bsrflash changes when reading the flash:

bsrflash r <filename> <size> [samples]

where samples is the number of identical and consecutive samples of a single address that are required to validate that the data at this address was read successfully. 2 is most probably enough, 3 is my choice, while 4 and above may be overkill (but acceptable if you dump a small size). Setting this to 2 will double the download time; setting to 3 will triple it; and so on… Defaults to 1.

<box round red 640px|WARNING>
Do NOT try to use the bootloader without prior confirmed JTAG access!
If you use it on your device and it breaks, don't come moaning and whining, neither Ian nor I will be held responsible for the breakage.
Once you decide to replace the original bootloader by APEX, you're on your own.

You've been warned.
</box>

We are using APEX as bootloader as an initial attempt at having a fully open source bootloader. We may end up porting a more common bootloader (namely, U-Boot) once we master the boot sequence and hardware initialisation.

For now the APEX port to the e800 is very alpha. Here is a table of the status of some important items, somewhat in order of importance:

Item

Status

Serial PUTC

OK

JTAG PUTC

Missing, code is known

SDRAM

Timings are known, register values are there, but init sequence is missing