supporting multifunction PCMCIA flash + wi-fi card (was: Re: iomode driver for ata flash card)

exo dia exodia at gmail.com
Fri May 27 14:25:23 EDT 2005


On Thu, Apr 7, 2005 at 02:36:35AM -0500, David Hinds wrote:
> On Fri, Apr 01, 2005 at 04:58:07AM -0500, Guylhem Aznar wrote:
> > On Wednesday, 30 March 2005 at  8:31:40 (-0800), David Hinds wrote:
> > > You showed what you do to use the wireless part; but you did not show
> > > what you do to access the flash part.  What do you do exactly, and
> > > what error do you get when you try to use both?
> > 
> > It was on the forum link - uploading the firmware and iwconfig.
> 
> My question was, how do you use the flash memory function, and what
> error(s) do you see if you try to use both card functions at the same
> time?
> 
> -- Dave

Forgive me for jumping in on this thread after such a long time - I
just picked up one of these same cards earlier this week, and have
spent some time getting it to work under the 2.4.18 Zaurus kernel on a
SL-C760 device, and ran across this thread while Googling this.  This
is a SanDisk Connect Plus Wi-Fi + 128MB flash card
(http://www.sandisk.com/retail/c-plus-wifi-cf.asp).

I am running into the same issues where it is possible to use either
Wi-Fi or IDE on this card, but not IDE when Wi-Fi is active.

When used independently, each mode works fine.  I.e., operating as IDE
only via "ide_cs" operates the flash part fine; operating the Wi-Fi
via "hostap"(0.3.7) works fine as well.
When I attempt to use both at the same time, the Wi-Fi part works
fine, but any IDE access gives timeout and "unexpected interrupt"
errors.  At this point, I can "ssh" into the device and attempt to
access the IDE/flash part ithrough higher-level functions such as
"fdisk" and a standard "mount".

Interestingly, at startup, the IDE function "kind of" works, in that
it detects the parameters of the flash part, but any further access
gives timeout/failure errors (seems that the IDE failures start after
the Wi-Fi part is initialized).  For example:

    ...
  hda: 250880 sectors (128 MB) w/1KiB Cache, CHS=980/8/32
  /dev/ide/host0/bus0/target0/lun0: p1
  ide_cs: hda: Vcc = 3.3, Vpp = 0.0
  hostap_cs: CS_EVENT_CARD_INSERTION
  Checking CFTABLE_ENTRY 0x01 (default 0x01)
  IO window settings: cfg->io.nwin=1 dflt.io.nwin=1
  io->flags = 0x0047, io.base=0x0000, len=128
  hostap_cs: Registered netdevice wifi0 
    ...
  hda: status timeout: status=0xc7 { Busy }
  hda: drive not ready for command
  hda: status timeout: status=0xc7 { Busy }
  hda: drive not ready for command 
    ...
  ide0: unexpected interrupt, status=0xc7, count=303
    ...

With the device just sitting there, the "unexpected interrupt"
messages just keep appearing repeatedly, while the count increases
significantly.  Again, Wi-Fi access works fine during this time.

Here is my current cardmgr config info for this card (for the above scenario):

  card "SanDisk ConnectPlus 128M"
     version "SanDisk", "ConnectPlus"
     manfid 0xd601, 0x0101
     bind "ide_cs" to 1 
     bind "hostap_cs" to 0

Does the core PCMCIA driver interface support a multifunction card
like this?  Any tips on different configuration parameters to try?  Or
does some bus/IRQ arbitration of some sort need to be done between the
two functions when running at the same time?

Near as I can tell, this is a SanDisk tech doc that covers the
interface to this card:
http://www.sandisk.com/pdf/industrial/ProdManualCFWLANv1.0.pdf

Any advice/pointers/help/etc. would be greatly appreciated!!

-- rick



More information about the linux-pcmcia mailing list