From: Eric A. <er...@an...> - 2010-06-18 18:18:47
|
On Fri, 18 Jun 2010 16:51:02 +0800, april <aap...@gm...> wrote: > Hi all: > > I have a problem. I want to make a command buffer in PCIE memory, and > make Engine execute those commands. > First set PCIE memory to be WC, copy command to command buffer in PCIE > memory, and make HW to execute those commands. > sometimes, the Graphic engine will hang. > > I try to use mb() to clear WC buffer, it seems a little butter? But > the problem is still. > > When I set the PCIE memory to Uncached, everthing is OK. > > So, Is it due to the write buffer that is not evicted ? > > and how to clear the WC buffer? You need to do "PCI write posting", meaning read some data out of the target to ensure that your buffered writes actually land. You'll often see this in the drivers as: WRITE_REG(reg, val) (void)READ_REG(reg) |