[U-Boot-Users] minimum bdi config to read flash on 85xx
robert lazarski
robertlazarski at gmail.com
Fri Sep 14 20:21:26 CEST 2007
On 9/12/07, David Hawkins <dwh at ovro.caltech.edu> wrote:
>
> Don't move onto anything until you can read the
> manufacturer ID, you've found a problem, so you
> need to figure it out here first.
After a few days with the docs, we've had some limited success. We
moved back to 128MB of ram and a base address of F8000000 . We think
we may have some timimg issues. To read the manufactor id the docs
say:
*( (UINT16 *)base_addr + 0x555 ) = 0x00AA; /* write unlock cycle 1 */
*( (UINT16 *)base_addr + 0x2AA ) = 0x0055; /* write unlock cycle 2 */
*( (UINT16 *)base_addr + 0x555 ) = 0x0090; /* write autoselect command */
manuf_id = *( (UINT16 *)base_addr + 0x000 ); /* read manuf. id */
So in our case we start with LAD30, so we need to do a shift left:
AAA = 555 << 1;
554 = 2AA << 1;
In the bdi, we executed:
ATUM>mmh 0xf8000AAA 0x00AA
ATUM>mmh 0xf8000554 0x0055
ATUM>mmh 0xf8000AAA 0x0090
ATUM>mmh 0xf8000AAA 0x0090
ATUM>mdh 0xf8000000 1
At which point we got the manufactor id and everything else.
Unfortunately the next day we weren't able to repeat it - can the
manufactor id be erased?
Anyways, we were able to write a word:
ATUM>mmh 0xf8000AAA 0x00AA
ATUM>mmh 0xf8000554 0x0055
ATUM>mmh 0xf8000AAA 0x00A0
ATUM>mmh 0xf8000F00 0xCAFE
ATUM>mdh 0xf8000F00 1
0_f8000f00 : 0xcafe -13570
We have yet to be able to repeat that feat at any other address. We
can read 0xCAFE from 0xf8000F00 , but only after about a minute after
a bdi boot. We cannot overwrite 0xf8000F00 , nor can we erase the
entire chip via the documented sequence. As I said we think we have
timing issues. Any suggestions? More RTFM? We do have a logic
analyzer.
Thanks all,
Robert
More information about the U-Boot
mailing list