Re: PowerPC PCI DMA issues (prefetch/coherency?)
From: Scott Wood
Date: Tue Jun 16 2009 - 12:46:56 EST
Chris Pringle wrote:
The kernel version is 2.6.26. Firmware is custom on a custom board.
Cache coherency on PCI DMA requires that the memory be mapped with the MI'm not sure where to look to verify this?
attribute on this chip, but that should be happening based on
Check asm/cputable.h for CPU_FTR_NEED_COHERENT. Make sure that
CONFIG_8260 is one of the #ifdefs that turns that on. It looks like
that was in place by 2.6.26 in arch/powerpc. I'm not sure what to look
for in arch/ppc.
Also make sure that you park the bus on PCI and raise its arbitrationSince this is a reasonably recent kernel,
priority, as done at the end of fixup_pci in
Not really, there was a fair amount of 82xx work in the mid-2.6.20s.
The addition of CPU_FTR_NEED_COHERENT to 82xx was somewhere in that time.
Can you try 2.6.30?
I'd guess that both of these
things are correct. I've had a quick look in that file and there is code
in there raising arbitartion priority and parking the bus.
Just because the code is there doesn't mean you're using it -- are you
using cuImage? Are you using arch/ppc or arch/powerpc?
Typically this would be done by firmware; it's only in cuboot because
u-boot wasn't doing it.
BTW, you may want to post to linuxppc-dev@xxxxxxxxxxxxxxxx forI've just posted there :-)
powerpc-specific issues, especially this kind of hardware issue.
Doh, sorry. :-)
Interestingly, I've just turned off cache snooping and the problem has
got much worse. This has surprised me as I thought that part of the job
done by pci_map_sg was to flush the CPU cache
It only flushes the cache on hardware that doesn't do coherent DMA.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/