Intel J3A Flash support in latest cvs broken?

Kein Yuan kein.yuan at gmail.com
Mon Feb 27 20:24:25 EST 2006


Hi all,
    I am working on PXA270 with Intel J3 flash.  CFI detect is OK and
jffs2 image was correctly written to the place by blob, the
bootloader. However kernel failed to mount jffs2 partition as root
filesystem.  After I boot with NFS as rootfs and tried to use
"flash_eraseall /dev/mtd2" to erase file system partition, it always
reports:

MTD_open
MTD_ioctl
MTD_ioctl
MTD_ioctl
Panther Flash: block erase error: (bad command sequence, status 0x700070)
MTD_ioctl
Panther Flash: block erase error: (status timeout)
MTD_ioctl
Panther Flash: Waiting for chip to be ready timed out. Status 0
MTD_ioctl
Panther Flash: Waiting for chip to be ready timed out. Status 0
MTD_ioctl
Panther Flash: Waiting for chip to be ready timed out. Status 0
MTD_ioctl
Panther Flash: Waiting for chip to be ready timed out. Status 0
MTD_ioctl
Panther Flash: Waiting for chip to be ready timed out. Status 0
MTD_ioctl
Panther Flash: block erase error: (status timeout)
MTD_close
Panther Flash: Waiting for chip to be ready timed out. Status 0


I also checked  drivers/mtd/chips/cfi_cmdset_0001.c :
static void fixup_intel_strataflash(struct mtd_info *mtd, void* param)
{
    struct map_info *map = mtd->priv;
    struct cfi_private *cfi = map->fldrv_priv;
    struct cfi_pri_amdstd *extp = cfi->cmdset_priv;

    printk(KERN_WARNING "cfi_cmdset_0001: Suspend "
                        "erase on write disabled.\n");
    extp->SuspendCmdSupport &= ~1;
}

This function is obviously wrong since it can't be built.  It should be

    struct cfi_pri_intelext *extp = cfi->cmdset_priv;
instead of
    struct cfi_pri_amdstd *extp = cfi->cmdset_priv;


So I am doube does this file still supported?

Can anybody give me some hints that why "bad command sequence, status 0x700070"
will happen since I can delect flash by CFI?  The boot log was pasted as below:
...

Probing Panther Flash at physical address 0x00000000 (32-bit bankwidth)
Panther Flash: Found 2 x16 devices at 0x0 in 32-bit bank
 Intel/Sharp Extended Query Table at 0x0031
cfi_cmdset_0001: Suspend erase on write disabled.
cfi_cmdset_0001: write suspend disabled
Using buffer write method
erase region 0: offset=0x0,size=0x40000,blocks=128
Using static partitions on Panther Flash
Creating 3 MTD partitions on "Panther Flash":
0x00000000-0x00040000 : "Bootloader"
mtd: Giving out device 0 to Bootloader
0x00040000-0x00240000 : "Kernel"
mtd: Giving out device 1 to Kernel
0x00240000-0x01240000 : "Filesystem"
mtd: Giving out device 2 to Filesystem
MSC0 is 0x7ffc7ff0.
...


Thanks,

Kein




More information about the linux-mtd mailing list