[U-Boot] CFI driver and P33 64M flash

Felix Radensky
2008-09-25T13:50:27Z

Hi,

I'm running U-Boot 1.3.4 on custom 460EX based board,
equipped with 64M P33 flash (similar to Intel P30). See
http://www.numonyx.com/Documents/Datasheets/314749_P33_Discrete_DS.pdf

This flash is comprised internally of two 32M flashes.
I have the following declarations in configuration file:

#define CFG_FLASH_CFI /* The flash is CFI compatible */
#define CFG_FLASH_CFI_DRIVER /* Use common CFI driver */

#define CFG_FLASH_BANKS_LIST {CFG_FLASH_BASE}
#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */
#define CFG_MAX_FLASH_SECT 518 /* max number of sectors on one
chip */

#define CFG_FLASH_USE_BUFFER_WRITE 1 /* use buffered writes (20x
faster) */
#define CFG_FLASH_PROTECTION 1 /* use hardware flash
protection */
#define CFG_FLASH_EMPTY_INFO /* print 'E' for empty sector on
flinfo */

U-Boot identifies this flash as 32M flash. Below is debug output from
CFI driver:

FLASH: 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 fc000055 cmd 98 98 8bit x 8 bit
is= cmd 51(Q) addr fc000010 is= 0 51
fwc addr fc000555 cmd 98 98 8bit x 8 bit
is= cmd 51(Q) addr fc000010 is= 0 51
fwc addr fc000000 cmd f0 f0f0 16bit x 8 bit
fwc addr fc000000 cmd ff ffff 16bit x 8 bit
fwc addr fc0000aa cmd 98 9898 16bit x 8 bit
is= cmd 51(Q) addr fc000020 is= 0051 5151
fwc addr fc000aaa cmd 98 9898 16bit x 8 bit
is= cmd 51(Q) addr fc000020 is= 0051 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= 0051 0051
is= cmd 52(R) addr fc000022 is= 0052 0052
is= cmd 59(Y) addr fc000024 is= 0059 0059
device interface is 1
found port 2 chip 2 port 16 bits chip 16 bits
00 : 51 52 59 01 00 0a 01 00 00 00 00 23 36 85 95 08 QRY........#6...
10 : 09 0a 00 01 01 02 00 19 01 00 06 00 02 03 00 80 ................
20 : 00 fe 00 00 02 00 00 00 00 ff ff ff ff fc 36 a4 ..............6.
fwc addr fc000000 cmd ff 00ff 16bit x 16 bit
fwc addr fc000000 cmd 90 0090 16bit x 16 bit
fwc addr fc000000 cmd ff 00ff 16bit x 16 bit
fwc addr fc0000aa cmd 98 0098 16bit x 16 bit
manufacturer is 1
manufacturer id is 0x89
device id is 0x22
device id2 is 0x0
cfi version is 0x3135
size_ratio 1 port 16 bits chip 16 bits
found 2 erase regions
erase region 0: 0x00800003
erase_region_count = 4 erase_region_size = 32768
erase region 1: 0x020000fe
erase_region_count = 255 erase_region_size = 131072
fwc addr fc000000 cmd ff 00ff 16bit x 16 bit
32 MB

What should I change in configuration/driver to get
all 64M of flash detected ?

Thanks a lot.

Felix.