Re: PowerPC PCI DMA issues (prefetch/coherency?)

Chris Pringle
2009-06-16T16:34:18Z

Scott Wood wrote:
> On Tue, Jun 16, 2009 at 02:58:27PM +0100, Chris Pringle wrote:
>
>> We're developing on a Freescale MPC8272 and are having some nasty
>> problems with PCI bus mastering and data corruption.
>>
>
> What kernel version? What firmware? Custom board, or one in upstream
> (which one)?
>
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 M
> attribute on this chip, but that should be happening based on detection of
> the core.
>
I'm not sure where to look to verify this?
> Also make sure that you park the bus on PCI and raise its arbitration
> priority, as done at the end of fixup_pci in arch/powerpc/boot/cuboot-pq2.c.
>
Since this is a reasonably recent kernel, 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.
> BTW, you may want to post to linuxppc-dev@lists.ozlabs.org for
> powerpc-specific issues, especially this kind of hardware issue.
>
>
I've just posted there :-)

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 - so I wasn't expecting
this to make any difference. The memory corruption with the cache
snooping turned off is almost identical to that which I'm seeing with it
turned on, only much, much worse.

--

______________________________
Chris Pringle
Software Engineer

Miranda Technologies Ltd.
Hithercroft Road
Wallingford
Oxfordshire OX10 9DG
UK

Tel. +44 1491 820206
Fax. +44 1491 820001
www.miranda.com

____________________________

Miranda Technologies Limited
Registered in England and Wales CN 02017053
Registered Office: James House, Mere Park, Dedmere Road, Marlow, Bucks, SL7 1FJ