
Hi Stefan,
Thanks for information.
I have tried the code in the URL link you have provided. But still I am facing the same problem. I am getting the error in "flash_detect_cfi" as flash not found. It fails at initial stage at read CFI query command. The code you have provided is for M29W128GL.(Numonix). Will this work for M29W128GH (STMIcrotronics)? I believe Uboot support M29W128GH flash. I am using this flash chip in 16 x 8 bit mode. The URL I provided is available under the thread: "[U-Boot] Query: Does Uboot support CFI flash driver forM29W128GH". Can there be an endianness issue, as I am running uboot from SDRAM and in Big endian mode?
Thanks & Regards, Prakash Bedge
Log: I have chnaged the "&&" to "||" in if(flash_isequal .... ) condition to check QRY response.
U-Boot 2009.08 (Jan 18 2010 - 20:10:01) FLASH: flash detect cfi fwc addr fc000000 cmd ff ff 8bit x 8 bit Entering into First Write First Write is done fwc addr fc000000 cmd f0 f0 8bit x 8 bit Entering into First Write First Write is done fwc addr fc000055 cmd 98 98 8bit x 8 bit Entering into First Write First Write is done is= cmd 51(Q) addr fc000010 is= ff 51 is= cmd 52(R) addr fc000011 is= ff 52 is= cmd 59(Y) addr fc000012 is= ff 59 fwc addr fc000555 cmd 98 98 8bit x 8 bit Entering into First Write First Write is done is= cmd 51(Q) addr fc000010 is= ff 51 is= cmd 52(R) addr fc000011 is= ff 52 is= cmd 59(Y) addr fc000012 is= ff 59 fwc addr fc000000 cmd ff ff00 16bit x 8 bit fwc addr fc000000 cmd f0 f000 16bit x 8 bit fwc addr fc0000aa cmd 98 9800 16bit x 8 bit is= cmd 51(Q) addr fc000020 is= ffff 5100 is= cmd 52(R) addr fc000022 is= ffff 5200 is= cmd 59(Y) addr fc000024 is= ffff 5900 fwc addr fc000aaa cmd 98 9800 16bit x 8 bit is= cmd 51(Q) addr fc000020 is= ffff 5100 is= cmd 52(R) addr fc000022 is= ffff 5200 is= cmd 59(Y) addr fc000024 is= ffff 5900 fwc addr fc000000 cmd ff 0000 16bit x 16 bit fwc addr fc000000 cmd f0 0000 16bit x 16 bit fwc addr fc0000aa cmd 98 0000 16bit x 16 bit is= cmd 51(Q) addr fc000020 is= ffff 0000 is= cmd 52(R) addr fc000022 is= ffff 0000 is= cmd 59(Y) addr fc000024 is= ffff 0000 fwc addr fc000aaa cmd 98 0000 16bit x 16 bit is= cmd 51(Q) addr fc000020 is= ffff 0000 is= cmd 52(R) addr fc000022 is= ffff 0000 is= cmd 59(Y) addr fc000024 is= ffff 0000 fwc addr fc000000 cmd ff ff00ff00 32bit x 8 bit fwc addr fc000000 cmd f0 f000f000 32bit x 8 bit fwc addr fc000154 cmd 98 98009800 32bit x 8 bit is= cmd 51(Q) addr fc000040 is= ffffffff 51005100 is= cmd 52(R) addr fc000044 is= ffffffff 52005200 is= cmd 59(Y) addr fc000048 is= ffffffff 59005900 fwc addr fc001554 cmd 98 98009800 32bit x 8 bit is= cmd 51(Q) addr fc000040 is= ffffffff 51005100 is= cmd 52(R) addr fc000044 is= ffffffff 52005200 is= cmd 59(Y) addr fc000048 is= ffffffff 59005900 fwc addr fc000000 cmd ff 00000000 32bit x 16 bit fwc addr fc000000 cmd f0 00000000 32bit x 16 bit fwc addr fc000154 cmd 98 00000000 32bit x 16 bit is= cmd 51(Q) addr fc000040 is= ffffffff 00000000 is= cmd 52(R) addr fc000044 is= ffffffff 00000000 is= cmd 59(Y) addr fc000048 is= ffffffff 00000000 fwc addr fc001554 cmd 98 00000000 32bit x 16 bit is= cmd 51(Q) addr fc000040 is= ffffffff 00000000 is= cmd 52(R) addr fc000044 is= ffffffff 00000000 is= cmd 59(Y) addr fc000048 is= ffffffff 00000000 fwc addr fc000000 cmd ff 00000000 32bit x 32 bit fwc addr fc000000 cmd f0 00000000 32bit x 32 bit fwc addr fc000154 cmd 98 00000000 32bit x 32 bit is= cmd 51(Q) addr fc000040 is= ffffffff 00000000 is= cmd 52(R) addr fc000044 is= ffffffff 00000000 is= cmd 59(Y) addr fc000048 is= ffffffff 00000000 fwc addr fc001554 cmd 98 00000000 32bit x 32 bit is= cmd 51(Q) addr fc000040 is= ffffffff 00000000 is= cmd 52(R) addr fc000044 is= ffffffff 00000000 is= cmd 59(Y) addr fc000048 is= ffffffff 00000000 fwrite addr fc000000 cmd ff ff00ff00ff00ff00 64 bit x 8 bit fwrite addr fc000000 cmd f0 f000f000f000f000 64 bit x 8 bit fwrite addr fc0002a8 cmd 98 9800980098009800 64 bit x 8 bit is= cmd 51(Q) addr fc000080 is= ffffffffffffffff 5100510051005100 is= cmd 52(R) addr fc000088 is= ffffffffffffffff 5200520052005200 is= cmd 59(Y) addr fc000090 is= ffffffffffffffff 5900590059005900 fwrite addr fc002aa8 cmd 98 9800980098009800 64 bit x 8 bit is= cmd 51(Q) addr fc000080 is= ffffffffffffffff 5100510051005100 is= cmd 52(R) addr fc000088 is= ffffffffffffffff 5200520052005200 is= cmd 59(Y) addr fc000090 is= ffffffffffffffff 5900590059005900 fwrite addr fc000000 cmd ff 0000000000000000 64 bit x 16 bit fwrite addr fc000000 cmd f0 0000000000000000 64 bit x 16 bit fwrite addr fc0002a8 cmd 98 0000000000000000 64 bit x 16 bit is= cmd 51(Q) addr fc000080 is= ffffffffffffffff 0000000000000000 is= cmd 52(R) addr fc000088 is= ffffffffffffffff 0000000000000000 is= cmd 59(Y) addr fc000090 is= ffffffffffffffff 0000000000000000 fwrite addr fc002aa8 cmd 98 0000000000000000 64 bit x 16 bit is= cmd 51(Q) addr fc000080 is= ffffffffffffffff 0000000000000000 is= cmd 52(R) addr fc000088 is= ffffffffffffffff 0000000000000000 is= cmd 59(Y) addr fc000090 is= ffffffffffffffff 0000000000000000 fwrite addr fc000000 cmd ff 0000000000000000 64 bit x 32 bit fwrite addr fc000000 cmd f0 0000000000000000 64 bit x 32 bit fwrite addr fc0002a8 cmd 98 0000000000000000 64 bit x 32 bit is= cmd 51(Q) addr fc000080 is= ffffffffffffffff 0000000000000000 is= cmd 52(R) addr fc000088 is= ffffffffffffffff 0000000000000000 is= cmd 59(Y) addr fc000090 is= ffffffffffffffff 0000000000000000 fwrite addr fc002aa8 cmd 98 0000000000000000 64 bit x 32 bit is= cmd 51(Q) addr fc000080 is= ffffffffffffffff 0000000000000000 is= cmd 52(R) addr fc000088 is= ffffffffffffffff 0000000000000000 is= cmd 59(Y) addr fc000090 is= ffffffffffffffff 0000000000000000 fwrite addr fc000000 cmd ff 0000000000000000 64 bit x 64 bit fwrite addr fc000000 cmd f0 0000000000000000 64 bit x 64 bit fwrite addr fc0002a8 cmd 98 0000000000000000 64 bit x 64 bit is= cmd 51(Q) addr fc000080 is= ffffffffffffffff 0000000000000000 is= cmd 52(R) addr fc000088 is= ffffffffffffffff 0000000000000000 is= cmd 59(Y) addr fc000090 is= ffffffffffffffff 0000000000000000 fwrite addr fc002aa8 cmd 98 0000000000000000 64 bit x 64 bit is= cmd 51(Q) addr fc000080 is= ffffffffffffffff 0000000000000000 is= cmd 52(R) addr fc000088 is= ffffffffffffffff 0000000000000000 is= cmd 59(Y) addr fc000090 is= ffffffffffffffff 0000000000000000 not found ## Unknown FLASH on Bank 1 - Size = 0x00000000 = 0 MB flash_protect ON: from 0xFFFC0000 to 0xFFFEE7FF flash_protect ON: from 0xFFFA0000 to 0xFFFBFFFF *** failed *** ### ERROR ### Please RESET the board ### ### main_loop entered: bootdelay=20
On Mon, Jan 18, 2010 at 2:15 PM, Stefan Roese sr@denx.de wrote:
Hi Prakash,
On Friday 15 January 2010 14:23:35 prakash bedge wrote:
In October 09 month, I had asked whether U-boot supports M29W128GH, a CFI compilant chip and I got a yes reply. Please refer below URL for
reference.
http://www.mail-archive.com/u-boot@lists.denx.de/msg24531.html.
Link not found. Please correct.
So I have used Uboot for my PPC440 based board.
When I flashed U-boot on flash and then run the Uboot in DDR then U-boot running on DDR fails to detect CFI chip M29W128GH (16M x 8 mode).
flash_detect_cfi function gives error that flash not found. I have added debug statements for temporary debug purpose. Please see the below error I am getting.
The CFI query address looks different in below code and not as per ST
make
M29W128GH specs. PCIMW.
What's the difference then? Please give an example.
I suggest you take a look at this prelimiary patch:
http://lists.denx.de/pipermail/u-boot/2009-December/065562.html
Please let me know if this helps or not.
Cheers, Stefan
-- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office@denx.de