views:

371

answers:

0

I've modified my bootloader to be able to download an eboot.bin from my desktop using eshell and verified that the entire image is in memory correctly, but even though it appears to flash correctly, it won't boot from the new image.

I'm using a Sophia Systems Sandgate III-P PXA310-based development kit running CE 6.0 R2 with all of the QFE's. It is actually using a PXA311 that has 128 MB of RAM and 256 MB of NAND flash integrated. This is my first exposure to NAND flash and the PXA310, but I have previously worked with a PXA270 using NOR flash.

I know that my bootloader resides at address 0x40000 (blocks 2 & 3 in my large block NAND) and I am able to JTAG my eboot.nb0 directly to that address and it works. When I download the eboot.bin, I unpack it into RAM and verify that it has been assembled correctly (matches the nb0), then call FlashWriteNAND().

You may be wondering why I'm bothering to do this since I can JTAG my flash, but we have another developer who needs to be able to do some POST code in our bootloader, and we only have one JTAG and they are expensive! Besides, I have a feeling it is something simple that I just don't quite understand, like the blocks are reserved or read only or something.