Re: Compact Flash operation by interrupts





Michael N. Moran wrote:

I am trying to implement a non-blocking driver for the CF card. So, this driver has to operate by CF interrupt rather then by polling the registers.

Without knowing more details, I *can* say that I have
successfully used the CF READY line as an interrupt
mechanism, which (iirc) mirrors the ready status that
you are polling.

Yes, you are right. I had to discover it myself; the documentation is rather poor and often misleading. The IRQ is active by the raising front. In the default configuration, on the sector write operation the IRQ is generated twice: once after the "write sector" command is issued, indicating that the CF is ready to accept the data, and the second time after the actual write operation is complete.


Vladimir Vassilevsky

DSP and Mixed Signal Design Consultant

http://www.abvolt.com
.



Relevant Pages

  • Re: Problems with NIC
    ... According to polling(4), the dc driver supports polling instead of using ... an interrupt line. ... Or you could disable ohci0 in the bios, or plug the offending USB device ... See the acpi manual page and google for 'irq routing freebsd'. ...
    (freebsd-stable)
  • [Fwd: 2.6.20-14.23 pauses on ThinkPad X32]
    ... Latency: 96 ... Subsystem: 1014:052d ... Interrupt: pin A routed to IRQ 11 ...
    (Ubuntu)
  • libata strangeness in 2.6.2-mm1 based kernel
    ... host bus clock speed is 400.0851 MHz. ... PCI Interrupt Link ... Linux Plug and Play Support v0.97 Adam Belay ... PCI Interrupt Link enabled at IRQ 23 ...
    (Linux-Kernel)
  • Re: Polling, Interrupts, DMA, Synchronous, Asynchronous I/O Definitions
    ... > then it is not polling. ... > you would also have 100% CPU usage in this polling loop. ... polling can be *more* efficient than an interrupt system ...
    (alt.lang.asm)
  • Re: Polling loop good here???
    ... The "vertical retrace interrupt" was IRQ 2... ... In today's hardware - as has been mentioned - they've almost certainly ... it...make use of the drivers... ...
    (alt.lang.asm)