Wind River Support Network

HomeDefectsLIN6-7343
Fixed

LIN6-7343 : CLONE - drivers/dma/lsi-dma32.c does not support loading transfers from descriptors

Created: May 6, 2014    Updated: Dec 3, 2018
Resolved Date: May 18, 2014
Previous ID: LIN5-18708
Found In Version: 6.0
Fix Version: 6.0.0.7
Severity: Severe
Applicable for: Wind River Linux 6
Component/s: BSP

Description

Customer reports that the LSI DMA driver does not support loading transfers from descriptors.

This causes transfers from sRIO to fail since the descriptors is in external memory and the highest bits of the memory (which is set in GPREG) does not correspond to the external memory. The DMA HW therefore tries to load the descriptor from sRIO which would load some random bits and not the intended descriptor.

This problem has been seen with the lsi-acp34xx BSP.

The DMA HW in the acp34xx is a bit strange (or broken) so to use it for sRIO or PCIex you need to load the descriptors manually. You can see that if you look in the register description of the DMA HW that since the GPREG is used both as source for the DMA descriptor and the DMA transaction it will not work to use DMA descriptors.

Workaround

The attached dma.patch.

Steps to Reproduce

The setup is devices connected on srio and then use DMA to read from the device to the acp34xx memory. Accesses from acp34xx memory to srio seems to work since that is not a GPREG problem. I think you could create the same problem when accessing pciex since if I remember correct this is also on the same high address as srio.

Other Downloads


Live chat
Online