[U-Boot-Users] Erase error on dual P30 (CFI) flash chips

Floris Lambrechts florisla at gmail.com
Fri Jun 15 13:55:53 CEST 2007


Hi all,

I'm trying to get flash programming to work in the u-boot monitor on
our custom boards. Reading the flash (i.e, booting :-) works, and once
in Linux the flash can be programmed too using mtd-tools.

But when I try to erase in u-boot, I get erase errors:

  Flash erase error at address ffd80000
  Block Erase Error.

(a more detailed log is included below).

I use U-Boot 1.2.0 and the standard CFI driver with buffered writes.

This is what flinfo and Linux MTD report:


  Bank # 1: CFI conformant FLASH (32 x 16)  Size: 64 MB in 259 Sectors
    Intel Extended command set, Manufacturer ID: 0x89, Device ID: 0x19
    Erase timeout: 4096 ms, write timeout: 1 ms
    Buffer write timeout: 2 ms, buffer size: 64 bytes

  physmap platform flash device: 04000000 at fc000000
  physmap-flash.0: Found 2 x16 devices at 0x0 in 32-bit bank

[We use two Intel P30 StrataFlash chips of 256Mbit in parallel (2
x16-bit words make a 32-bit bank), for a total of 64 MB].

All reported parameters look OK to me (port width, chip width, size,
#sectors, ...)

I've noticed that for these 28F256P30 flash chips, there has been a
patch in the past which corrected the manufacturer, but that doesn't
seem relevant for the CFI driver.
(http://permalink.gmane.org/gmane.comp.boot-loaders.u-boot/28709)

FYI, I checked the value of flash_info_t->interface, and it's detected
as FLASH_CFI_X16.

Is there something specific that I need to configure?  All I'm using
right now is
CFG_FLASH_CFI
CFG_FLASH_CFI_DRIVER
CFG_FLASH_USER_BUFFER_WRITE
CFG_FLASH_EMPTY_INFO

(Disabling buffered write does not solve the issue.)

Please let me know if you have any suggestions.

regards
Floris

----

Here are the longer logs:

=> flinfo

Bank # 1: CFI conformant FLASH (32 x 16)  Size: 64 MB in 259 Sectors
  Intel Extended command set, Manufacturer ID: 0x89, Device ID: 0x19
  Erase timeout: 4096 ms, write timeout: 1 ms
  Buffer write timeout: 2 ms, buffer size: 64 bytes

  Sector Start Addresses:
  FC000000   RO   FC040000   RO   FC080000   RO   FC0C0000   RO   FC100000   RO
  (...)
  FFD40000   RO   FFD80000   RO   FFDC0000   RO   FFE00000   RO   FFE40000 E RO
  FFE80000 E RO   FFEC0000 E RO   FFF00000   RO   FFF40000 E RO   FFF80000 E RO
  FFFC0000 E RO   FFFD0000 E RO   FFFE0000 E RO   FFFF0000   RO

=> protect off ffd80000 ffdbffff

Un-Protected 1 sectors

=> erase ffd80000 ffdbffff

Flash erase error at address ffd80000
Block Erase Error.
Block locked.
 done
Erased 1 sectors

=> protect on ffd80000 ffdbffff

Protected 1 sectors

=> flinfo

Bank # 1: CFI conformant FLASH (32 x 16)  Size: 64 MB in 259 Sectors
  Intel Extended command set, Manufacturer ID: 0x89, Device ID: 0x19
  Erase timeout: 4096 ms, write timeout: 1 ms
  Buffer write timeout: 2 ms, buffer size: 64 bytes

  Sector Start Addresses:
  (...)
  FFD40000   RO   FFD80000   RO   FFDC0000   RO   FFE00000   RO   FFE40000 E RO
  (...)



physmap platform flash device: 04000000 at fc000000
physmap-flash.0: Found 2 x16 devices at 0x0 in 32-bit bank
 Intel/Sharp Extended Query Table at 0x010A
 Intel/Sharp Extended Query Table at 0x010A
 Intel/Sharp Extended Query Table at 0x010A
 Intel/Sharp Extended Query Table at 0x010A
 Intel/Sharp Extended Query Table at 0x010A
Using buffer write method
cfi_cmdset_0001: Erase suspend on write enabled




More information about the U-Boot mailing list