[ELDK] question of probing flash in linux

xiangguo_li at hotmail.com xiangguo_li at hotmail.com
Sat Jun 14 20:01:08 CEST 2008


hello,

in the system, there are two 28f128(16MB,x16) connected to 32 bits
interface.

when u-boot is up, a 'fli' command could get the following results:

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

  Sector Start Addresses:
  FC000000        FC040000   ......     FDFC0000

the result is correct.



while in linux, I built memory map files under ./drivers/mtd/maps,
if i set .bankwidth (in struct map_info) to 2 and 4, I get "map probe
failed";
when setting .bankwidth to 1, I get the following:

: big flash mapping: 2000000 @ fc000000
Big Flash: Found 1 x32 devices at 0x0 in 8-bit bank
 Intel/Sharp Extended Query Table at 0x0031
Using buffer write method
cfi_cmdset_0001: Erase suspend on write enabled
Creating 4 MTD partitions on "Big Flash":
0x00000000-0x00200000 : "kernel"
mtd: Giving out device 3 to kernel
0x00200000-0x00240000 : "dtb"
mtd: Giving out device 4 to dtb
0x00240000-0x00640000 : "initrd"
mtd: Giving out device 5 to initrd
0x00640000-0x02000000 : "jffs2"
mtd: partition "jffs2" extends beyond the end of device "Big Flash" -- size
truncated to 0x9c0000
mtd: Giving out device 6 to jffs2

it seems that:
(1) the probing result is strange but wrong: 1 x32 devices at 0x0 in 8-bit
bank.
(2) half of the flash volume is truncated off.

and, I have set these configuration options: CONFIG_MTD_CFI_ADV_OPTIONS \
CONFIG_MTD_MAP_BANK_WIDTH_1\ CONFIG_MTD_MAP_BANK_WIDTH_2 \
CONFIG_MTD_MAP_BANK_WIDTH_4 \ CONFIG_MTD_MAP_BANK_WIDTH_8 \
CONFIG_MTD_MAP_BANK_WIDTH_16 \ CONFIG_MTD_MAP_BANK_WIDTH_32

what's the possible reasons of this question?

thank you.

-lxg

-lxg 



More information about the eldk mailing list