FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
Announcements
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
5881 Discussions

Mapping physical menory of MSGDMA extended descriptors with prefetch enabled

Altera_Forum
Honored Contributor II
992 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
124 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.

Reply