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

prakash bedge prakash.bedge at gmail.com
Wed Jan 20 10:44:54 CET 2010


Hi Albert and Stefan,

I have used the proper commands.
i.e.
mw.b 0xfc000000 0xf0
mw.b 0xfc000055 0x98
md.b 0xfc000010
But still no positive results.
Last time I forgot to tell here, that I have commneted the for(;;) loop in
"hang" function after flash_init result testing in lib_ppc/board.c and then
I am able to run the above commands on uboot prompt.

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.
Prakash - I tried both but no success.
How to crosscheck the chipwidth? Can someone tell what is chipwidth and
portwidth?
I believe I am using chipwidth - 16 and portwidth - 8. How to validate this
against chipwidth and portwidth?


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.
Prakash - Albert, I didn't understand above message clearly. Please explain
what you want to say. If anyhow my flash is in write mode then also I should
be able to see the CFI query command response. PCIMW.


Hi Baren,

Please reply to my earlier mail addressed to you if possible.


Thanks & Regards,
Prakash Bedge
On Tue, Jan 19, 2010 at 10:14 PM, Albert ARIBAUD <albert.aribaud at free.fr>wrote:

> 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