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

yusuf khan
2008-09-26T07:00:10Z

>Message: 2
>Date: Thu, 25 Sep 2008 16:50:27 +0300
>From: Felix Radensky <felix@embedded-sol.com>
>Subject: [U-Boot] CFI driver and P33 64M flash
>To: u-boot at lists.denx.de
>Message-ID: <48DB9723.2060708@embedded-sol.com>
>Content-Type: text/plain; charset=ISO-8859-1; format=flowed

>Hi,

>'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<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.

Hi

Set the CFG_MAX_FLASH_SECT to 259 and adjust the sector size to 256K
I think it should work than.

--
Thanks & Regards

Yusuf A Khan
Multitech Software Systems
Koramangala,Bangalore