Re: Flushing writes to PCI devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 20 Sep 2006, Alan Stern wrote:

> I've heard that to insure proper synchronization it's necessary to flush
> MMIO writes (writel, writew, writeb) to PCI devices by reading from the
> same area.  Is this equally true for I/O-space writes (inl, inw, inb)?
> What about configuration space writes (pci_write_config_dword etc.)?
>
> Alan Stern

Writes to I/O space are not queued through a FIFO so there is
no need to flush the FIFO. Configuration space uses special
configuration cycles which are handshakes with the devices. They
cannot be queued, therefore don't need to be flushed either.

Flushing PCI space writes shouldn't be done until you want
whatever you've been planning to happen __now__. Otherwise
the advantages of queued writes go away. In other words, one
should NOT attach a read to every PCI space write! Typically
use of the flushing read might be in the case of setting up
hardware for a DMA transfer. You write all the data, source
address, destination address, byte-count, DMA type, etc., then
after the last instruction, the one should should start the DMA,
you issue a read.


Cheers,
Dick Johnson
Penguin : Linux version 2.6.16.24 on an i686 machine (5592.66 BogoMips).
New book: http://www.AbominableFirebug.com/
_


****************************************************************
The information transmitted in this message is confidential and may be privileged.  Any review, retransmission, dissemination, or other use of this information by persons or entities other than the intended recipient is prohibited.  If you are not the intended recipient, please notify Analogic Corporation immediately - by replying to this message or by sending an email to [email protected] - and destroy all copies of this information, including any attachments, without reading or disclosing them.

Thank you.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux