- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi there,
I am working with the Cyclone V and my goal is to transfer Data with the HPS-DMA-Controller (DMA330) and receive an "interrupt" in the FPGA on completion. The data transfer is already functioning. I configured the DMA-Controller via the DMAengine-API:tx = dma_dev->device_prep_dma_memcpy(dma_channel, dma_dst_addr, dma_src_addr, SDMA_BUF_SIZE, DMA_PREP_INTERRUPT );
cookie = dmaengine_submit(tx);
dma_async_issue_pending(dma_channel);
However, I do not receive the interrupt in the FPGA. I checked the HPS-to-FPGA-interrupt in Qsys. Which gave me 8 Interrupt lines corresponding to 8 DMA-channels in the DMAC. One thing that is not clear to me, that the DMAengine-API "offers" me 32 DMA channels while there are only 8 "physical" DMA-channels. How can that be? Currently I am using the API-channel nr. 7 and expecting the interrupt on the physical channel nr 7. I did a full recompile including SPL and U-boot with Buildroot. I would like to narrow this down. I guess either - there is no interrupt sent ( descriptor/ DMA-Controller not properly configured) or - it does not reach the FPGA ( I am missing a step where this HPS-to-FPGA Interrupt connections have to be enabled) or - I am listening on the wrong DMA-channel-interrupt Do you have an Idea what is going wrong here or how to proceed? Do you know any documentation about the HPS-to-FPGA Interrupts other than the "Cyclone V Hard Processor System Technical Reference Manual" ? https://alteraforum.com/forum/attachment.php?attachmentid=15575&stc=1
Link Copied
0 Replies
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page