Re: "block erase failed: Input/output error" with SMART PCMCIA linear flash

Scott Serr <[email protected]> Mon, 03 Nov 2003 14:21:01 -0700
Newsgroups gmane.linux.drivers.wireless.access-point
Message-ID <[email protected]>
You have been very thorough.  (way beyond me, and I got my card 
working)  If I remember right I was using 2.4.20 on SuSE 7.3.  I didn't 
do anything with the PCMCIA stuff, just allowing it to detect as generic 
memory worked fine.  One thing that I remember reading is you need 5V to 
write and only 3.3V to read.  Also, of course you want your write 
protect off on the card. 

It's pretty obvious to me that you know more about this stuff than I 
do.  I have roughly the same card in a 8MB unit, and it works.  It could 
be that your card is bad, but do check the voltage and the write protect.

Good luck,
-Scott

Miernik wrote:

>I'm trying to get a "SMART Modular Technologies 4MB FAST FLASH CARD 
>SM9FA2043IP280" PCMCIA linear flash Intel Series 2+ card working.
>I mean being able to write it on my Debian GNU/Linux machine. 
>
>The explanation of SM9FA2043IP280:
>
>SM      Smart Modular
>9       Product Category:       Memory Card
>F       Technology:             Flash
>A       Attribute:              With Attribute (2kB)
>2       Nop. of banks:          2 Bank
>04      Card Density:           4 MB
>3       Component Data Width:   x16
>I       Device Manufacturer:    Intel
>P       Pinout:                 68 Pin PC Card (Type I)
>2       Interface:              x16 only
>80      Card Speed:             80ns
>
>
>FLA16MPX16ICB REV.A
>
>To know what I'm working with, I have opened the card, and found these 
>4 chips:
>
>2 * chip:
>---------
>Intel
>
>E28F016SA
>70   5.0V
>120  3.3V
>U84433T1C
>1993
>
>Flash
>---------
>
>---------
>ATMEL
>AT28C16
>15TC
>9837
>---------
>
>---------
>IDT 74FCT
>108CTQ
>KP84ST
>---------
>
>I have accidentally erased attribute memory of this card, so it is 
>detected only as anonymous memory. I fix it like this:
>
>card "Anonymous Memory"
>  anonymous
>  cis "cis/smartm-4mb-flash.dat"
>  bind "memory_cs", "ftl_cs"
>
>
>I am using 2.4.22-3 kernel from Debian, self-compiled, not compiling 
>pcmcia-modules from the kernel, but separately. 
>I compiled pcmcia-modules_3.2.2-1.4.
>
>I have compiled pcmcia-modules with debug=8 and I have very detailed
>debug logs. Can someone take a look at them? It's 5559 byes gziped,
>but 149368 bytes ungizped. It's avialable at 
>http://www.miernik.ctnet.pl/mtd/6-with-debug/testlog
>http://www.miernik.ctnet.pl/mtd/6-with-debug/testlog.gz
>
>You can see the contents of my /etc/pcmcia at 
>http://www.miernik.ctnet.pl/mtd/6-with-debug/pcmcia/
>
>My logs when the system boots with the card:
>http://www.miernik.ctnet.pl/mtd/6-with-debug/log/
>
>Output of 'cardctl *', 'cat /proc/*', 'lsmod' and 'ls -l /dev/mem0*' are
>here: http://www.miernik.ctnet.pl/mtd/6-with-debug/
>
>And the used kernel and modules:
>http://www.miernik.ctnet.pl/debian/pool/kernel-image-2.4.22_tarnica.1.0_i386.deb
>http://www.miernik.ctnet.pl/debian/pool/pcmcia-modules-2.4.22_3.2.2-1.4+tarnica+debug.1.0_i386.deb
>
>In short words: 
>
>When trying to do 'ftl_format -i /dev/mem0c0c' I get:
>block erase failed: Input/output error
>format failed.
>
>and in my /var/log/messages:
>
>Nov  3 19:15:51 tarnica kernel: memory_erase(0, 0x0, 65536)
>Nov  3 19:15:51 tarnica kernel: cs: CardServices(CheckEraseQueue, 0xcea7a700, 0x00000000)
>Nov  3 19:15:51 tarnica kernel: cs: trying erase request 0xcdfee260...
>Nov  3 19:15:51 tarnica kernel: iflash2+_mtd: flash_event(0x020000)
>Nov  3 19:15:51 tarnica kernel: iflash2+_mtd: flash_erase(0xced86a80, 0xcee81800, 0x0, 0x10000)
>Nov  3 19:15:51 tarnica kernel: cs: CardServices(GetStatus, 0xced86880, 0xcd965de4)
>Nov  3 19:15:51 tarnica kernel: i82365: GetStatus(0) = 0x01c0
>Nov  3 19:15:51 tarnica kernel: iflash2+_mtd: raising Vpp...
>Nov  3 19:15:51 tarnica kernel: i82365: SetSocket(0, flags 0x200, Vcc 50, Vpp 120, io_irq 0, csc_mask 0x80)
>Nov  3 19:15:51 tarnica kernel: Status = 1, requeueing.
>Nov  3 19:15:51 tarnica kernel: cs: erase timeout for entry 0xcdfee260
>Nov  3 19:15:51 tarnica kernel: cs: trying erase request 0xcdfee260...
>Nov  3 19:15:51 tarnica kernel: iflash2+_mtd: flash_event(0x020000)
>Nov  3 19:15:51 tarnica kernel: iflash2+_mtd: flash_erase(0xced86a80, 0xcee81800, 0x0, 0x10000)
>Nov  3 19:15:51 tarnica kernel: i82365: SetMemMap(0, 1, 0x03, 80 ns, 0xe1000-0xe1fff, 0x00000)
>Nov  3 19:15:51 tarnica kernel: i82365: SetMemMap(0, 2, 0x23, 250 ns, 0xe2000-0xe2fff, 0x04000)
>Nov  3 19:15:51 tarnica kernel: iflash2+_mtd: set_rdy_mode(0404)
>Nov  3 19:15:51 tarnica kernel: iflash2+_mtd: set_rdy_mode failed!
>Nov  3 19:15:51 tarnica kernel: CSR = 0xffff, BSR = 0xffff, GSR = 0xffff
>Nov  3 19:15:51 tarnica kernel: Status = 1, requeueing.
>Nov  3 19:15:51 tarnica kernel: cs: erase timeout for entry 0xcdfee260
>Nov  3 19:15:51 tarnica kernel: cs: trying erase request 0xcdfee260...
>Nov  3 19:15:51 tarnica kernel: iflash2+_mtd: flash_event(0x020000)
>Nov  3 19:15:51 tarnica kernel: iflash2+_mtd: flash_erase(0xced86a80, 0xcee81800, 0x0, 0x10000)
>Nov  3 19:15:51 tarnica kernel: i82365: SetMemMap(0, 1, 0x03, 80 ns, 0xe1000-0xe1fff, 0x00000)
>Nov  3 19:15:51 tarnica kernel: erase error: CSR = 0xffff, BSR = 0xffff, GSR = 0xffff
>Nov  3 19:15:51 tarnica kernel: Status = 1, requeueing.
>
>
>And while trying to do 'wrflash -ef test1 /dev/mem0c0c' (where test1 
>is a sample 8kByte file) I get:
>
>Partition size = 4 mb, erase unit size = 64 kb, start address 0x0
>
>
>erasing block 1 of 64 (0x0-0xFFFF)
>This will destroy data on the target device.  Confirm (y/n): y
>block erase failed: Input/output error
>---> failure.
>
>And more or less the same thing as above in /var/log/messages. 
>
>Reading from the card with dd looks OK, at least it doesn't say 
>"error" anywhere :)
>
>While reading I get about 60 kB/s from the block device and 200 kB/s 
>from the character device. I get a file with all bits set to 1 
>(FFFFFFFF etc), but maybe it is just what is on the card.
>
>One more thing: I do it all through a Intel i82365sl B step rev 00 
>ISA-to-PCMCIA card. It has a big chip "OMEGA MICRO 82C365G".
>
>While I try to write to the card, I get Vpp 12.0V in cardctl config.
>
>  
>