FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
6673 Discussions

Mapping physical menory of MSGDMA extended descriptors with prefetch enabled

Altera_Forum
Honored Contributor II
1,445 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
577 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