[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