
On 9/14/07, David Hawkins dwh@ovro.caltech.edu wrote:
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 :)
OK guys, its working!!!! YEAH!!!! Last problem turned out to be an open resistor / bad solder joint on the address bus! We can now erase the flash chip entirely. I also did the prog command to upload uboot.bin and can see the uboot version at the base address - so this stage is now completed!!!! Thanks so much for all the help guys, I doubt we would have gotten so far without this community and we are most grateful! I feel so much smarter now ;-) .
Last question before I get into my code finally - and I'll start a new thread when I start debugging: The bdi docs in the uboot manual seem to stop at the 'go' command. When I type 'info' I get a running state. Can I now just power on and attach a terminal via the serial port to get the uboot shell? To get to that point is the next dragon to slay?
Thanks!!! Robert