[U-Boot-Users] minimum bdi config to read flash on 85xx
David Hawkins
dwh at ovro.caltech.edu
Fri Sep 14 21:12:25 CEST 2007
Hi Robert,
> 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;
Do you really? I would have thought that the address code
was a byte-address, and therefore invariant for this part.
In 16-bit mode the device doesn't see the last bit.
Double-check :)
> 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?
Perhaps the first time you forgot to do the shift and
got it right.
Other things:
1. An oscilloscope probe should be used to checkout waveforms
2. Check the part number. Some parts use VCC=3.3V, and
VCCIO that can be lower than 3.3V. Perhaps someone
loaded a lower voltage part and you've damaged it.
Cheers,
Dave
More information about the U-Boot
mailing list