I came across this Engineering Bulletin for the MPC5200 by accident.
It isn't referenced from anywhere on the Freescale site that I, Freescale's or Google's searches can find. I expect it to be referenced from the MPC5200 paget.
The document is here:
it doesn't explicitly state what mask versions it applies to, or even if it applies to the MPC5200 or MPC5200B (it says "MPC5200(b)").
Document Number: EB711
Rev. 0, 05/2009
MPC5200(b) ATA MDMA, UDMA
BestComm Setup Recommendations
by: Peter Kardos
Application Engineer, Roznov
The ATA functionality is limited and problematic when
DMA modes are used with data cache and instruction
The malfunction is demonstrated by corrupted and/or
missing data in the buffer. Corrupted data in the read
buffer is either bit shifted or is “missing” and replaced by
0x0 or 0xFF. Amount of the corrupted data during
transfer is DMA-mode and speed dependent. To avoid
these faults, the following workaround must be applied
and is recommended for other peripheral buffers as well
to improve reliability and system stability (PCI memory
window, PCI mapping, Local plus bus, and so on).
1. Set appropriate peripheral FIFO size and granularity to one or more.
2. Set the buffer that is stored in the memory to not cacheable. If you are using more peripherals with
BestComm, the easiest way is to create a memory segment.
The following figure shows an example of this setup and the code to be used in CodeWarrior. The image
was taken from the MPC5200(b) Quick Start utility that can be downloaded from Freescale website
These recommendations should be applied in operating systems like Linux and VxWorks as well.