[U-Boot-Users] minimum bdi config to read flash on 85xx

David Hawkins dwh at ovro.caltech.edu
Fri Sep 7 04:00:06 CEST 2007


Hi Luiz,

> First of all, thanks for helping us!!! You are amazing guys!

There is a saying 'what goes around, comes around ...'.

So by helping you now, I hope someone helps me later :)

> Yes, we want to boot from flash. But firstly, we want to
> validate our  hardware :)

Always helps to walk before running :)

> So, let me see if I understood you synchronizing some points:
> 
> 1- In order to validate my flash circuitry, I don't need LA pins. I'm 
> able to validate it using just simple FCI commands. Am I right?

Yes.

0. Scope out the pins and check the chip-select and write
    pulse timing matches that specified by the Flash.

1. Try reading the manufacturer info.

> I'm not familiar with these command. Probably Robert knows it. But he is 
> out of the office until tuesday. Can you please give some examples?

Its in the data sheet. See comments below.

> 2- LA pins are necessary just in case I want to boot from flash. Is it?

Yes. LA[27:31] need to be connected to the boot Flash.

> 3- Our flash is a S29GL01GP MirrorBit. I'm send you our flash schematic 
> and datasheet. There you can see that WP# is tied high, BYTE# is tied 
> high, RESET# is high (a FPGA controls this pin) and that there is no 
> address pin floating.

Ok. I plan to use the same part.

Download the data sheet; eg. I seem to have a copy called
s29gl-p_00_a5_e.pdf

Look near the end of the document for the 'Memory Array Command
Definitions' table, x16.

Eg. to read the manufacturer ID perform the following sequence,
where wm.b means write memory byte, but you'll need to replace
this with the BDI2000 equivalent, which I can't recall at the
moment :) (and the 0x might be optional too). The point is
this will help you understand how to use the table:

  wm.b 0x555 0xAA
  wm.b 0x2AA 0x55
  wm.b 0x555 0x90
  wm.b 0x000 0x01

and then read say 8 bytes from the flash

  md.b 8

Somewhere in the data sheet it'll tell you what the Spansion
manufacturer ID is supposed to be.

The 0x555 0xAA 0x2AA 0x55 is called the unlock sequence,
the remaining bytes are then command codes.

If you get the low-level routines to give you valid results,
then you can try higher-level Flash commands to see where
you get differing results.

You can use this method to program Flash bytes too.

Cheers,
Dave








More information about the U-Boot mailing list