[U-Boot] Please pull u-boot-cfi-flash/master

Wolfgang Denk wd at denx.de
Fri Apr 12 11:35:21 CEST 2013


Dear Tom, Stfan, Aaron,

In message <20130405162807.GH32357 at bill-the-cat> you wrote:
> 
> > please pull the updated cfi-flash repository with the build warning fix:
...
> > aaron.williams at caviumnetworks.com (1):
> >       mtd: cfi_flash: Fix CFI flash driver for 8-bit bus support

Hereby I ask to revert the "mtd: cfi_flash: Fix CFI flash driver for
8-bit bus support" patch,. i. e. Commit 239cb9d.

It breaks the CFI driver on a board here.  The board has two banks of
AMD NOR flash, mapped at F800.0000 and FC00.0000, resp.  With current
code, the flash is not detected.  Here is the debug log:

flash detect cfi
fwc addr f8000000 cmd f0 f0 8bit x 8 bit
fwc addr f8000000 cmd ff ff 8bit x 8 bit
fwc addr f80000aa cmd 98 98 8bit x 8 bit
is= cmd 51(Q) addr f8000020 is= 31 51
fwc addr f8000000 cmd f0 f0 8bit x 8 bit
fwc addr f8000000 cmd ff ff 8bit x 8 bit
fwc addr f8000555 cmd 98 98 8bit x 8 bit
is= cmd 51(Q) addr f8000020 is= 31 51
fwc addr f8000000 cmd f0 f0f0 16bit x 8 bit
fwc addr f8000000 cmd ff ffff 16bit x 8 bit
fwc addr f8000154 cmd 98 9898 16bit x 8 bit
is= cmd 51(Q) addr f8000040 is= 0051 5151
fwc addr f8000000 cmd f0 f0f0 16bit x 8 bit
fwc addr f8000000 cmd ff ffff 16bit x 8 bit
fwc addr f8000aaa cmd 98 9898 16bit x 8 bit
is= cmd 51(Q) addr f8000040 is= 0000 5151
fwc addr f8000000 cmd f0 00f0 16bit x 16 bit
fwc addr f8000000 cmd ff 00ff 16bit x 16 bit
fwc addr f80000aa cmd 98 0098 16bit x 16 bit
is= cmd 51(Q) addr f8000020 is= 3137 0051
fwc addr f8000000 cmd f0 00f0 16bit x 16 bit
fwc addr f8000000 cmd ff 00ff 16bit x 16 bit
fwc addr f8000554 cmd 98 0098 16bit x 16 bit
is= cmd 51(Q) addr f8000020 is= 0000 0051
fwc addr f8000000 cmd f0 f0f0f0f0 32bit x 8 bit
fwc addr f8000000 cmd ff ffffffff 32bit x 8 bit
fwc addr f80002a8 cmd 98 98989898 32bit x 8 bit
is= cmd 51(Q) addr f8000080 is= 00000004 51515151
fwc addr f8000000 cmd f0 f0f0f0f0 32bit x 8 bit
fwc addr f8000000 cmd ff ffffffff 32bit x 8 bit
fwc addr f8001550 cmd 98 98989898 32bit x 8 bit
is= cmd 51(Q) addr f8000080 is= 00000004 51515151
fwc addr f8000000 cmd f0 00f000f0 32bit x 16 bit
fwc addr f8000000 cmd ff 00ff00ff 32bit x 16 bit
fwc addr f8000150 cmd 98 00980098 32bit x 16 bit
is= cmd 51(Q) addr f8000040 is= 00000000 00510051
fwc addr f8000000 cmd f0 00f000f0 32bit x 16 bit
fwc addr f8000000 cmd ff 00ff00ff 32bit x 16 bit
fwc addr f8000aa8 cmd 98 00980098 32bit x 16 bit
is= cmd 51(Q) addr f8000040 is= 00000000 00510051
fwc addr f8000000 cmd f0 000000f0 32bit x 32 bit
fwc addr f8000000 cmd ff 000000ff 32bit x 32 bit
fwc addr f80000a8 cmd 98 00000098 32bit x 32 bit
is= cmd 51(Q) addr f8000020 is= 31373a33 00000051
fwc addr f8000000 cmd f0 000000f0 32bit x 32 bit
fwc addr f8000000 cmd ff 000000ff 32bit x 32 bit
fwc addr f8000550 cmd 98 00000098 32bit x 32 bit
is= cmd 51(Q) addr f8000020 is= 31373a33 00000051
fwrite addr f8000000 cmd f0 f0f0f0f0f0f0f0f0 64 bit x 8 bit
fwrite addr f8000000 cmd ff ffffffffffffffff 64 bit x 8 bit
fwrite addr f8000500 cmd 98 9898989898989898 64 bit x 8 bit
is= cmd 51(Q) addr f8000100 is= ffffffffffffffff 5151515151515151
fwrite addr f8000000 cmd f0 f0f0f0f0f0f0f0f0 64 bit x 8 bit
fwrite addr f8000000 cmd ff ffffffffffffffff 64 bit x 8 bit
fwrite addr f8002a80 cmd 98 9898989898989898 64 bit x 8 bit
is= cmd 51(Q) addr f8000100 is= ffffffffffffffff 5151515151515151
fwrite addr f8000000 cmd f0 00f000f000f000f0 64 bit x 16 bit
fwrite addr f8000000 cmd ff 00ff00ff00ff00ff 64 bit x 16 bit
fwrite addr f8000280 cmd 98 0098009800980098 64 bit x 16 bit
is= cmd 51(Q) addr f8000080 is= 00000004ffffffff 0051005100510051
fwrite addr f8000000 cmd f0 00f000f000f000f0 64 bit x 16 bit
fwrite addr f8000000 cmd ff 00ff00ff00ff00ff 64 bit x 16 bit
fwrite addr f8001500 cmd 98 0098009800980098 64 bit x 16 bit
is= cmd 51(Q) addr f8000080 is= 00000004ffffffff 0051005100510051
fwrite addr f8000000 cmd f0 000000f0000000f0 64 bit x 32 bit
fwrite addr f8000000 cmd ff 000000ff000000ff 64 bit x 32 bit
fwrite addr f8000100 cmd 98 0000009800000098 64 bit x 32 bit
is= cmd 51(Q) addr f8000000 is= 27051956552d426f 0000005100000051
fwrite addr f8000000 cmd f0 000000f0000000f0 64 bit x 32 bit
fwrite addr f8000000 cmd ff 000000ff000000ff 64 bit x 32 bit
fwrite addr f8000a80 cmd 98 0000009800000098 64 bit x 32 bit
is= cmd 51(Q) addr f8000000 is= 27051956552d426f 0000005100000051
fwrite addr f8000000 cmd f0 00000000000000f0 64 bit x 64 bit
fwrite addr f8000000 cmd ff 00000000000000ff 64 bit x 64 bit
fwrite addr f8000080 cmd 98 0000000000000098 64 bit x 64 bit
is= cmd 51(Q) addr f8000000 is= 27051956552d426f 0000000000000051
fwrite addr f8000000 cmd f0 00000000000000f0 64 bit x 64 bit
fwrite addr f8000000 cmd ff 00000000000000ff 64 bit x 64 bit
fwrite addr f8000500 cmd 98 0000000000000098 64 bit x 64 bit
is= cmd 51(Q) addr f8000000 is= 27051956552d426f 0000000000000051
not found
flash detect cfi
fwc addr fc000000 cmd f0 f0 8bit x 8 bit
fwc addr fc000000 cmd ff ff 8bit x 8 bit
fwc addr fc0000aa cmd 98 98 8bit x 8 bit
is= cmd 51(Q) addr fc000020 is= 31 51
fwc addr fc000000 cmd f0 f0 8bit x 8 bit
fwc addr fc000000 cmd ff ff 8bit x 8 bit
fwc addr fc000555 cmd 98 98 8bit x 8 bit
is= cmd 51(Q) addr fc000020 is= 31 51
fwc addr fc000000 cmd f0 f0f0 16bit x 8 bit
fwc addr fc000000 cmd ff ffff 16bit x 8 bit
fwc addr fc000154 cmd 98 9898 16bit x 8 bit
is= cmd 51(Q) addr fc000040 is= 0051 5151
fwc addr fc000000 cmd f0 f0f0 16bit x 8 bit
fwc addr fc000000 cmd ff ffff 16bit x 8 bit
fwc addr fc000aaa cmd 98 9898 16bit x 8 bit
is= cmd 51(Q) addr fc000040 is= 0000 5151
fwc addr fc000000 cmd f0 00f0 16bit x 16 bit
fwc addr fc000000 cmd ff 00ff 16bit x 16 bit
fwc addr fc0000aa cmd 98 0098 16bit x 16 bit
is= cmd 51(Q) addr fc000020 is= 3137 0051
fwc addr fc000000 cmd f0 00f0 16bit x 16 bit
fwc addr fc000000 cmd ff 00ff 16bit x 16 bit
fwc addr fc000554 cmd 98 0098 16bit x 16 bit
is= cmd 51(Q) addr fc000020 is= 0000 0051
fwc addr fc000000 cmd f0 f0f0f0f0 32bit x 8 bit
fwc addr fc000000 cmd ff ffffffff 32bit x 8 bit
fwc addr fc0002a8 cmd 98 98989898 32bit x 8 bit
is= cmd 51(Q) addr fc000080 is= 00000000 51515151
fwc addr fc000000 cmd f0 f0f0f0f0 32bit x 8 bit
fwc addr fc000000 cmd ff ffffffff 32bit x 8 bit
fwc addr fc001550 cmd 98 98989898 32bit x 8 bit
is= cmd 51(Q) addr fc000080 is= 00000000 51515151
fwc addr fc000000 cmd f0 00f000f0 32bit x 16 bit
fwc addr fc000000 cmd ff 00ff00ff 32bit x 16 bit
fwc addr fc000150 cmd 98 00980098 32bit x 16 bit
is= cmd 51(Q) addr fc000040 is= 00000000 00510051
fwc addr fc000000 cmd f0 00f000f0 32bit x 16 bit
fwc addr fc000000 cmd ff 00ff00ff 32bit x 16 bit
fwc addr fc000aa8 cmd 98 00980098 32bit x 16 bit
is= cmd 51(Q) addr fc000040 is= 00000000 00510051
fwc addr fc000000 cmd f0 000000f0 32bit x 32 bit
fwc addr fc000000 cmd ff 000000ff 32bit x 32 bit
fwc addr fc0000a8 cmd 98 00000098 32bit x 32 bit
is= cmd 51(Q) addr fc000020 is= 31373a33 00000051
fwc addr fc000000 cmd f0 000000f0 32bit x 32 bit
fwc addr fc000000 cmd ff 000000ff 32bit x 32 bit
fwc addr fc000550 cmd 98 00000098 32bit x 32 bit
is= cmd 51(Q) addr fc000020 is= 31373a33 00000051
fwrite addr fc000000 cmd f0 f0f0f0f0f0f0f0f0 64 bit x 8 bit
fwrite addr fc000000 cmd ff ffffffffffffffff 64 bit x 8 bit
fwrite addr fc000500 cmd 98 9898989898989898 64 bit x 8 bit
is= cmd 51(Q) addr fc000100 is= 380000003c20ffff 5151515151515151
fwrite addr fc000000 cmd f0 f0f0f0f0f0f0f0f0 64 bit x 8 bit
fwrite addr fc000000 cmd ff ffffffffffffffff 64 bit x 8 bit
fwrite addr fc002a80 cmd 98 9898989898989898 64 bit x 8 bit
is= cmd 51(Q) addr fc000100 is= 380000003c20ffff 5151515151515151
fwrite addr fc000000 cmd f0 00f000f000f000f0 64 bit x 16 bit
fwrite addr fc000000 cmd ff 00ff00ff00ff00ff 64 bit x 16 bit
fwrite addr fc000280 cmd 98 0098009800980098 64 bit x 16 bit
is= cmd 51(Q) addr fc000080 is= 0000000000000000 0051005100510051
fwrite addr fc000000 cmd f0 00f000f000f000f0 64 bit x 16 bit
fwrite addr fc000000 cmd ff 00ff00ff00ff00ff 64 bit x 16 bit
fwrite addr fc001500 cmd 98 0098009800980098 64 bit x 16 bit
is= cmd 51(Q) addr fc000080 is= 0000000000000000 0051005100510051
fwrite addr fc000000 cmd f0 000000f0000000f0 64 bit x 32 bit
fwrite addr fc000000 cmd ff 000000ff000000ff 64 bit x 32 bit
fwrite addr fc000100 cmd 98 0000009800000098 64 bit x 32 bit
is= cmd 51(Q) addr fc000000 is= 27051956552d426f 0000005100000051
fwrite addr fc000000 cmd f0 000000f0000000f0 64 bit x 32 bit
fwrite addr fc000000 cmd ff 000000ff000000ff 64 bit x 32 bit
fwrite addr fc000a80 cmd 98 0000009800000098 64 bit x 32 bit
is= cmd 51(Q) addr fc000000 is= 27051956552d426f 0000005100000051
fwrite addr fc000000 cmd f0 00000000000000f0 64 bit x 64 bit
fwrite addr fc000000 cmd ff 00000000000000ff 64 bit x 64 bit
fwrite addr fc000080 cmd 98 0000000000000098 64 bit x 64 bit
is= cmd 51(Q) addr fc000000 is= 27051956552d426f 0000000000000051
fwrite addr fc000000 cmd f0 00000000000000f0 64 bit x 64 bit
fwrite addr fc000000 cmd ff 00000000000000ff 64 bit x 64 bit
fwrite addr fc000500 cmd 98 0000000000000098 64 bit x 64 bit
is= cmd 51(Q) addr fc000000 is= 27051956552d426f 0000000000000051
not found
## cfi_flash.c[2460]
## cfi_flash.c[2462]
*** failed ***
### ERROR ### Please RESET the board ###


After reverting the commit (and no other changes), I get:

...
I2C:   ready
DRAM:  128 MiB
Flash: 128 MiB
L2:    256 KB enabled
...

and "flinfo" reports:

=> fli

Bank # 1: CFI conformant flash (32 x 16)  Size: 64 MB in 512 Sectors
  AMD Standard command set, Manufacturer ID: 0x01, Device ID: 0x227E1201
  Erase timeout: 16384 ms, write timeout: 1 ms
  Buffer write timeout: 5 ms, buffer size: 32 bytes

  Sector Start Addresses:
  F8000000        F8020000 E      F8040000 E      F8060000 E      F8080000 E    
  F80A0000 E      F80C0000 E      F80E0000 E      F8100000 E      F8120000 E    
...
Bank # 2: CFI conformant flash (32 x 16)  Size: 64 MB in 512 Sectors
  AMD Standard command set, Manufacturer ID: 0x01, Device ID: 0x227E1201
  Erase timeout: 16384 ms, write timeout: 1 ms
  Buffer write timeout: 5 ms, buffer size: 32 bytes

  Sector Start Addresses:
  FC000000        FC020000        FC040000 E      FC060000 E      FC080000 E    
  FC0A0000 E      FC0C0000 E      FC0E0000 E      FC100000 E      FC120000 E    
  FC140000 E      FC160000 E      FC180000 E      FC1A0000 E      FC1C0000 E    
  FC1E0000 E      FC200000 E      FC220000 E      FC240000 E      FC260000 E    
...

I think for the release it is best to revert the patch, to have
working, stable code again, and then analyze the cause of the prolem
and develop a fix.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Lispers are among  the  best  grads  of  the  Sweep-It-Under-Someone-
Else's-Carpet  School of Simulated Simplicity. [Was that sufficiently
incendiary? :-)]  - Larry Wall in <1992Jan10.201804.11926 at netlabs.com


More information about the U-Boot mailing list