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

Reply via email to