From: Sancho Dauskardt <[EMAIL PROTECTED]> > > Forget datafab.c for this, as the protocoll is a little different. > >Hm. I used datafab.c successfully for the CF side. >What precisely is different?
It's a while ago, but if I remember correctly, the ACOMdATA (actually OnSpec Inc.) chip has two short bulk data packets waiting to be read after a read/write, and datafab.c only requested one, which got the device quite confused after some time - and especially so after media change. Also datafab.c is useless for lun != 0 (for the ACOMdATA drive that is). Note: reseting the ACOMdATA via the usb hub (usb_reset_device()) only work for the CF/SM part, but not for the MS/SD. Check older postings about other quirks. Last Tuesday ("Queens Birthday" - a holiday in Holland) I did the reading part, and this evening the writing part for this animal. I see that you also did reading, more or less in the same way, but you did not have writing code? Let me document the present state of knowledge. /* * Commands: 8 bytes * Five commands are known: * * Identify: 0 0 0 0 0 b0 0 80 * * Read DeviceID: 0 0 0 0 0 b0 0 84 * * Read: 0 P P P 0 b0 N 85 * here N is the number of 256-byte chunks, * the high order bits of PPP are the PBA, the low order bits * the sector within an erase block. * * Write: L1 P P P eN b0 L2 86 * here e is the bit "no evacuation needed" (bit 6), and * N is the number of 512-byte sectors (bits 5-0), * and PPP is as for Read, and L1,L2 are the low and high order * parts of LBA. * * The write is not done at the indicated address, but elsewhere, * and after the 2-byte OK status, four more bytes are returned * to indicate where. The address PPP is big-endian, the returned * address little-endian. * * Read map: 0 0 0 0 0 b0 L 8a * here L is the number of 256-byte chunks. * The map in 2 bytes (little endian) per block. * * (The CF part uses Identify: 00 01 00 00 00 a0 ec 01.) */ (more details in the code). I changed quite a lot in the usb-storage directory, mostly to avoid code duplication. If anyone is interested, the current version lives on ftp.XX.kernel.org in kernel/people/aeb/usb-storage*wip Unfortunately I cannot finish this second driver this evening, since I destroyed my SmartMedia card. Wrote something bad to it, and this reader doesnt want to look at it anymore. Andries _______________________________________________________________ Have big pipes? SourceForge.net is looking for download mirrors. We supply the hardware. You get the recognition. Email Us: [EMAIL PROTECTED] _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel