We are using a P3041 with an RTOS that enables and configures the PAMU for devices including DMA. We want to DMA from a source address on the ELBC, for example, 0xc0000000, to a destination buffer in RAM (right now its a section aligned by 0x1000 ). Our transfers do not work. we get a Transfer Error indication from the DMA. We can DMA from RAM to RAM with no problem. We know that the devices on the ELBC are visible to the CPU and other than DMA everything has been working fine. So right now we have to do the transfer using the cpu but we want to use DMA instead.
The RTOS BSP sets the PAMU PAACE structure for DMA0 to windows base 0x00000000 with size of 0x1e (2GB. == ram size). What we don't understand is how the PAMU is told the address of the device on the ELBC. If that even needs to be done. Does the window need to enclose both the source address and the destination address? Or a better question, for the DMA controller, does the PAMU want the window address to be in the destination address in RAM or be the address of the device?
We wish the freescale p3041RM documentation had a better explanation of how to set the PAACE