Um... I raised this issue a while back... nobody is interested in this for
general busses, but it might be good for USB devices, since we now have two
that need it.
I don't know if we support 1&2 MByte cards... but teh full mapping is so we
can add write support. Check the CVS repository, and if you're really
interested, joing the usb-storage developer's list.
Matt
On Sat, Apr 07, 2001 at 09:55:29PM +0200, Sancho Dauskardt wrote:
> Hi all,
>
> I'm currently writing a driver for some Carry USB
> CompactFlash/SmartMedia/MemoryStick Card readers (www.carry.com.tw,
> USB-Vendor 0x7CC). I have some doc's under NDA and the CompactFlash part is
> already working quite nicely under 2.4.2.
>
> Now I'm doing the SSFDC stuff. Of course I could just copy sddr09 and
> fudge in the differences USB protocol stuff, but I would prefer to transfer
> all the SSFDC-things into a separate ssfdc_mgr.c which could be used by all
> SSFDC devices, regardless of the bus/device there connected to. An of
> course we're still missing write-access ?
>
> Now:
> * does sddr09.c work with 1&2 MB Cards ?
> These cards would show up as 256bytes/sector devices to the scsi layer ?
> From all specs/docs I've seen, one should really hide this detail from
> other layers ?
>
> * do we really need a full two-way pba<-->lba mapping for read-only ?
> SSFDC Block 0 (not Page/Sector 0 !) can't contain any user data anyway
> (always card info there).
> for write-access we definitely need them: finding free blocks,...
>
>
> My plans for the ssfdc_mgr are something like:
>
> struct ssfdc_abstract_manager {
>
> void *connected_via_device; // for read/write calls
>
> int vendorID,deviceID;
>
> ssfdc_geometry geo;
>
> int *lba2pba;
>
> // Functions to read/write/copy complete 256+8/512+16
> sectors (data+redundancy)
> //
> int (*read_raw_sector_func)(ssfdc_abstract_manager *mgr,int
> block,int page,char *data,int size);
> int (*write_raw_sector_func)(ssfdc_abstract_manager *mgr,int
> block,int page,char *data,int size);
> int (*copy_raw_sector_func)(ssfdc_abstract_manager *mgr,int
> sourceblock,int sourcepage,int destblock);
>
> // Erase a block after it's been copied somewhere else..
> //
> int (*erase_block_func)(ssfdc_abstract_manager *mgr,int block);
>
> // Read data only or redundancy only.
> //
> // Multiple sectors ok, but don't cross block boundarys.
> //
> int (*read_data_func)(ssfdc_abstract_manager *mgr,int
> block,int page,char *data,int size);
> int (*read_redundancy_func)(ssfdc_abstract_manager *mgr,int
> block,int page,char *data,int size);
> };
>
> I'm not familiar with the SCM commands for writing, therefor: will this
> match the SCM Command-set ?
>
> I remember Matt asking about this in some other groups: was this your idea ?
>
> Can we use the SMIL stuff published by Toshiba/SSFDC (see
> http://www.ssfdc.or.jp/english/smil/down.htm) ?
> I guess not.
>
>
> sda
>
>
> _______________________________________________
> [EMAIL PROTECTED]
> To unsubscribe, use the last form field at:
> http://lists.sourceforge.net/lists/listinfo/linux-usb-devel
--
Matthew Dharm Home: [EMAIL PROTECTED]
Maintainer, Linux USB Mass Storage Driver
Why am I talking to a toilet brush?
-- CEO
User Friendly, 4/30/1998
PGP signature