Hi all,
Just thought I'd say what I've been working on currently - had a slow fortnight w/o much time to spare for it but... I am writing a 2ndstage boot monitor for the E2 with the aim to drop it into the first block (or two ;) of NAND flash via David's pblq program. I currently haven't touched the flash at all, and am using JTAG to download it to RAM - that actually works very nicely, about 3K/s too..
Anyway, it provides a basic shell on the serial port with peek/poke/dump/go style commands. It'll also support YMODEM transfers (when I get them working) to/from DRAM and from NAND - so it'll provide an easy means to prototype bigger programs on top of itself, with quick downloads to DRAM.
I've found the NAND support to be interesting. It's my intention to have it be able to scan internal NAND (and SmartMedia) for headers of code to load/jump to, much as PBL does. The raw NAND contains some strange stuff; there is some sort of FTL in force here. At this point I got a bit exasperated trying to work out exactly what ECC/badblock-remapping scheme they've used in the NAND flash; however I've found the PBL high-level "read offset N" routines (e.g. 0x4d18), and can call them (in ROM) from my own code (in RAM) with success.... These routines seem to perform ECC/FTL-style remapping. I haven't found out how to get them to read SmartMedia though... (Incidentally 0xa0002007 bit 0x02 is an active high 'smartmedia inserted' flag, 0xa0002005 bit 0x01 being the NAND CS for the card.) Thinking about it it would make sense for the ECC/remapping stuff of the internal NAND to be the same as the SmartMedia standard, no point duplicating code for a different system for internal flash...
Anyway; anyone have any comments/input/help with regard to the PBL routines to access SMC or internal flash? I haven't looked for/found the writeBlock routines yet, but they'll be next on the list. Ideally this loader (it's about 8K now since I'm lazy and most is in C) would sit at the (logical ;) ) start of NAND, be brought up by PBL and then boot from either SMC if inserted or else search internal NAND for another image. Would be a cool development cycle to just blast stuff onto SMC card and plug it in rather than waiting for it to download over serial.
Hope to get something ready over the weeken that ppl can play with if anyone's interested.
-Matt