
robert lazarski wrote:
On 8/29/07, Ben Warren bwarren@qstreams.com wrote:
robert lazarski wrote:
atum8548>erase 00000000 # Writing to workspace failed
Workspace is RAM. If your memory controller isn't set up, you can't use the workspace. From your config file it looks like you're planning on using some kind of cache for SRAM. I'd just skip this for now. Delete the WORKSPACE line and you should be able to write to flash. It'll be dog-slow, though.
Thanks! I commented out the cache settings. Now I'm getting closer. I getting:
atum8548>unlock Unlocking flash passed atum8548>erase 0 Erasing flash at 0x00000000 # Erasing flash memory failed atum8548>erase FF000000 Erasing flash at 0x00000000 # Erasing flash memory failed atum8548>erase 0x01000000 Erasing flash at 0x01000000 # Erasing flash memory failed
What chip do you have? What did you start erasing?
I'm not much of an expert on this, but I believe the BDI-2000 will execute the INIT section before handing control over to you. Your flash chip is on chip select 0, so the BR0/OR0 registers determine where you will see it. On my CPU (MPC8349) and probably yours too, the 17 least significant (from the left) bits of BR0 determine where the chip select ends up. In your case, this is 0xff80. I expect your flash chip will start at 0xff800000.
I highly recommend reading up on these registers - the Freescale reference manuals are excellent. There are a lot of options, and for NOR flash, at least at startup, you should make sure all the timings are fully relaxed (maximum wait states etc.).
This is of course probably due to my bdi2000 cfg file - I've annexed it in this email. I've tried to keep the file bare bones though this is my first time writing this config. I've got one flash bank, a 128MB spansion S29GL01GP . Here's my flash #DEFINE's :
For my 64Mb Spansion GL flash I use:
CHIPTYPE MIRRORX16 ;Flash type: Spansion CHIPSIZE 0x800000 ;The size of one flash chip in bytes BUSWIDTH 16 ;The width of the flash memory bus in bits (8 | 16 | 32 | 64)
Yours will probably be the same, but size will be 0x1000000. I'm assuming your flash is 128Mb and not 128MB, but I apologize if this is wrong.
That makes sense - I'm trying that but got the erase errors above. Any more ideas?
Thanks! Robert
Hopefully with the right address and the registers set up correctly you will be able to write to flash. One way or the other, we'll get there!
regards, Ben