[U-Boot] U-boot running on DDR fails to detect the CFI compliant flash

Albert ARIBAUD albert.aribaud at free.fr
Tue Jan 19 17:44:15 CET 2010


prakash bedge a écrit :
> Hi Baren and Stefan
> 
> What I find is *VERY* helpful when trying to understand flash control issues
> is to *manually* do the QRY write sequence (see your flash data sheet) by
> using memory write/read commands from the u-boot command prompt
> I tested the same using "mw" and "md" commands from uboot prompt for read
> CFI query command. But test failed.
> 
> Log details:
> mw 0xfc000000 0xf0
> mw 0xfc000055 0x98
> md 0xfc000010
> fc000010: ffffffff ffffffff ffffffff ffffffff    ................
> fc000020: ffffffff ffffffff ffffffff ffffffff    ................
> fc000030: ffffffff ffffffff ffffffff ffffffff    ................
> fc000040: ffffffff ffffffff ffffffff ffffffff    ................
> fc000050: ffffffff ff000000 98ffffff ffffffff    .....   ........
> fc000060: ffffffff ffffffff ffffffff ffffffff    ................
> fc000070: ffffffff ffffffff ffffffff ffffffff    ................
> fc000080: ffffffff ffffffff ffffffff ffffffff    ................
> fc000090: ffffffff ffffffff ffffffff ffffffff    ................
> fc0000a0: ffffffff ffffffff ffffffff ffffffff    ................
> fc0000b0: ffffffff ffffffff ffffffff ffffffff    ................
> fc0000c0: ffffffff ffffffff ffffffff ffffffff    ................
> fc0000d0: ffffffff ffffffff ffffffff ffffffff    ................
> fc0000e0: ffffffff ffffffff ffffffff ffffffff    ................
> fc0000f0: ffffffff ffffffff ffffffff ffffffff    ................
> fc000100: ffffffff ffffffff ffffffff ffffffff    ................
> 
> mw 0xfc000000 0xf0
> mw 0xfc0000AA 0x98  ...  This is the actual mapping.
> md 0xfc000020
> fc000020: ffffffff ffffffff ffffffff ffffffff    ................
> fc000030: ffffffff ffffffff ffffffff ffffffff    ................
> fc000040: ffffffff ffffffff ffffffff ffffffff    ................
> fc000050: ffffffff ff000000 98ffffff ffffffff    .....   ........
> fc000060: ffffffff ffffffff ffffffff ffffffff    ................
> fc000070: ffffffff ffffffff ffffffff ffffffff    ................
> fc000080: ffffffff ffffffff ffffffff ffffffff    ................
> fc000090: ffffffff ffffffff ffffffff ffffffff    ................
> fc0000a0: ffffffff ffffffff ffff0000 0098ffff    ..........   ...
> fc0000b0: ffffffff ffffffff ffffffff ffffffff    ................
> fc0000c0: ffffffff ffffffff ffffffff ffffffff    ................
> fc0000d0: ffffffff ffffffff ffffffff ffffffff    ................
> fc0000e0: ffffffff ffffffff ffffffff ffffffff    ................
> fc0000f0: ffffffff ffffffff ffffffff ffffffff    ................
> fc000100: ffffffff ffffffff ffffffff ffffffff    ................
> fc000110: ffffffff ffffffff ffffffff ffffffff    ................
> 
> I believe that I am executing correct commands. If wrong please guide me.
> 
> M29W128Gh details:
> chip is 16 bit  (is this chipwidth?)
> bus is 8 bit (is this portwidth?)
> Algorithm -AMD
> Banks- 1
> sectors - 128
> 
> Which u-boot version you used where you do not need to change the uboot code
> for ST make M29W128GH?
> What other configuration or code I need to check in order to identify the
> root cause?

Two things strike me as weird:

1) You're writing 32-bit words to the chip. At most it should be 16-bit 
words, possibly even 8-bits. Try mw.w and mw.b.

2) Your writes actually appear where you did them, as if the flash was 
already in write mode, which is highly unlikely, or if you had some 
cache enabled for this area of your address space.

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list