[Top][All Lists]

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

cache coherency in DMA and MMIO

From: Da Zheng
Subject: cache coherency in DMA and MMIO
Date: Thu, 22 Apr 2010 22:37:51 +0800
User-agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv: Gecko/20100317 Thunderbird/3.0.4


I try to make e1000 work with my porting of DDE Linux26. After I tested the
code, it seems the variables in the transmission queue, which are access by the
device with DMA, are not changed by the device after a packet is transmitted.
antrik suggested that it might be related to cache coherency.

I googled it and found an article
http://kerneltrap.org/mailarchive/linux-kernel/2008/4/29/1657814, which clearly
states "DMA (with a few very special cases as
exception that are beyond the scope of this document) is cache coherent with
the CPU on a PC. PCI MMIO regions and other similar pieces of device memory
are NOT cache coherent." Later it states that "On PCs, if the BIOS is not too
buggy, the BIOS will set up the MTRRs such that all regular memory is cachable,
and that all MMIO space is set to uncachable".

So does the driver need to consider about cache coherency problems on PC when
interacting with the external device?

Zheng Da

reply via email to

[Prev in Thread] Current Thread [Next in Thread]