Re: CF / PCMCIA interrupt mechanism

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



The Card Interrupt is different Card Detect(PCMCIA Bridge) interrupt. The
Card Interrupt is only be used by PCMCIA client Driver directly.
However, the interrupt could be shared. Some hardware use same interrupt for
PC Card Bridge and PC Card Client Interrupt.
The PC Card Client Interrupt is mapped by PC Card Socket Driver to the
hardware When pcc_serv calls Socket driver PDCardSetSocket function.

For the new PC Card Model, the Client Card Interrupt information is passed
to Client Driver through Device Driver Registry value "SysIntr".

For the Legacy Driver, the pcc_pcm.dll is loaded. the Legacy PCMCIA driver
use the PC Card Service exposed by pcc_pcm.dll(renamed to pcmcia.dll for
compatibility). CardRequestIRQ is used to pass IST callback to the
pcc_pcm.dll stack. When Client Card Interrupt occurs, the pcc_pcm.dll IST
will call the IST callback function that provided by PCMCIA Client Driver
via CardRequestIRQ.

David Liao

"newsposter" <nposter@xxxxxxxxx> wrote in message
news:1163499395.045610.294170@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
I am working on a CE 5.0 build for custom hardware. The CPU includes a
PCMCIA / CF controller which we have got basically working (CF memory
cards work OK). However, I want to use a Network card now and we are
coming up against the problem of interrupts from the CF card, which are
not working.

I don't understand at the moment how they are supposed to work though!
There is only one PCMCIA interrupt in the system, which is also used to
indicate things like card detect change etc. So the PCMCIA controller
code needs to handle this interrupt, and do something if it is the card
that caused the interrupt. What I want to know is:

1) How does the hardware-specific PCMCIA controller code pass the fact
that an interrupt has occurred further up the stack? This must go back
up into the general PCMCIA/CF code then back down into the client
driver but I don't understand how this is supposed to work.

2) We have the further abstraction that the client driver is NDIS and
so is registering for the interrupt through NdisMRegisterInterrupt but
I guess this doesn't change anything.

Thanks,

Matt



.



Relevant Pages

  • Re: em(4) stops forwarding
    ... the card has stopped working several times. ... The interrupt is shared since the machine is a notebook. ... as my USB mouse stopped working - the USB controller is on the same irq. ... So even though the if_em driver has a very fast interrupt ...
    (freebsd-current)
  • Re: em(4) stops forwarding
    ... the card has stopped working several times. ... The interrupt is shared since the machine is a notebook. ... as my USB mouse stopped working - the USB controller is on the same irq. ... So even though the if_em driver has a very fast interrupt ...
    (freebsd-current)
  • Re: Win98SE and WPA-PSK incompatibility
    ... client and WZC do not. ... driver meant an NDIS or ODI library. ... includes a client manager, configuration utility, monitoring software, ... A 16 bit card will fit in a 32 bit slot, but not the other way around. ...
    (alt.internet.wireless)
  • Re: about samsung smdk2440 sd driver questions
    ... I just have the driver as dll files,there are no sources.Can you tell ... The second question,I debug the detect interrupt ... can get the interrupt whether the card inserts or removes.In fact,when ... and once,the OEMInterruptDone exports the same string ...
    (microsoft.public.windowsce.platbuilder)
  • Re: 2.6.2-rc3: irq#19 - nobody cared - with an au88xx
    ... I've figured out why no one ever submitted the driver: ... The main interrupt handler is in there. ... wrapper returns IRQ_NONE if some blob of code in there decides the card ... send the line "unsubscribe linux-kernel" in ...
    (Linux-Kernel)