FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6355 Discussions

Mapping physical menory of MSGDMA extended descriptors with prefetch enabled

Altera_Forum
Honored Contributor II
1,142 Views

Hi All , 

 

We need to use around 1500 descptors for transferring data from camera sensor to system memory ( 64 bit OS ) vi MSGDMA (64 bit). 

since we needed 1500 descs .. i just did  

kython.sgdma_desc_pool1_phy =pci_map_single(pdev,kython.sgdma_desc_pool1_virt,MSGDMA_NUM_DESCS*(sizeof(alt_msgdma_prefetcher_extended_descriptor)),PCI_DMA_BIDIRECtional); 

 

root_node = python.sgdma_desc_pool1_phy 

/* set next descriptor registers to point to the list root-node */ 

IOWR_ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_LOW(lower_32_bits(root_node)); 

 

IOWR_ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_HIGH(upper_32_bits(root_node)); 

 

 

But the MSGDMA is rejecting the desc as invalid desc .We have populated the descriptor correctly . 

 

is it because pci_map_single does not support 64 bit addressing , is there equalvaent calls for pci_map_single ???
0 Kudos
1 Reply
Altera_Forum
Honored Contributor II
274 Views

I don't have experience with the prefetcher of the DMA but in order to use extended descriptions you have to make sure that the hardware has that option enabled.

0 Kudos
Reply