GTS AXI Multichannel DMA IP for PCI Express* User Guide
                    
                        ID
                        847470
                    
                
                
                    Date
                    8/25/2025
                
                
                    Public
                
            
                
                    
                        1. Overview
                    
                    
                
                    
                        2. Quick Start Guide
                    
                    
                
                    
                        3. Configuring and Generating the GTS AXI Multichannel DMA IP for PCI Express
                    
                    
                
                    
                        4. Integrating the IP With Your Application
                    
                    
                
                    
                        5. Simulating the IP
                    
                    
                
                    
                        6. Validating the IP
                    
                    
                
                    
                    
                        7. Known Issues
                    
                
                    
                        A. Functional Description
                    
                    
                
                    
                        B. Software Programming Model
                    
                    
                
                    
                        C. Registers
                    
                    
                
                    
                    
                        D. Document Revision History for the GTS AXI Multichannel DMA IP for PCI Express*
                    
                
            
        
                                    
                                    
                                        
                                        
                                            2.1.1. Downloading and Installing Quartus® Prime Software
                                        
                                        
                                    
                                        
                                        
                                            2.1.2. Configuring and Generating the GTS AXI Multichannel DMA IP for PCI Express
                                        
                                        
                                    
                                        
                                        
                                            2.1.3. Configuring and Generating the GTS AXI Streaming IP for PCI Express
                                        
                                        
                                    
                                        
                                        
                                            2.1.4. Configuring and Generating the GTS System PLL Clocks IP
                                        
                                        
                                    
                                        
                                        
                                            2.1.5. Configuring and Generating the GTS Reset Sequencer IP
                                        
                                        
                                    
                                        
                                        
                                            2.1.6. Configuring and Generating the Reset Release IP
                                        
                                        
                                    
                                        
                                        
                                            2.1.7. Instantiating and Connecting the IP Interfaces
                                        
                                        
                                    
                                        
                                        
                                            2.1.8. Simulate, Compile and Validate the Design on Hardware
                                        
                                        
                                    
                                
                            
                                    
                                    
                                        
                                        
                                            4.4.1. PCIe AXI-Stream TX Interface (ss_tx_st)
                                        
                                        
                                    
                                        
                                        
                                            4.4.2. PCIe AXI-Stream RX Interface (ss_rx_st)
                                        
                                        
                                    
                                        
                                        
                                            4.4.3. Control and Status Register Interface (ss_csr_lite)
                                        
                                        
                                    
                                        
                                        
                                            4.4.4. Transmit Flow Control Credit Interface (ss_txcrdt)
                                        
                                        
                                    
                                        
                                            4.4.5. Configuration Intercept Interface (CII)
                                        
                                        
                                        
                                    
                                        
                                        
                                            4.4.6. Completion Timeout Interface (ss_cplto)
                                        
                                        
                                    
                                        
                                            4.4.7. Function Level Reset (FLR) Interface
                                        
                                        
                                        
                                    
                                        
                                        
                                            4.4.8. Control Shadow Interface (ss_ctrlshadow)
                                        
                                        
                                    
                                        
                                        
                                            4.4.9. Error Interface
                                        
                                        
                                    
                                
                            
                                    
                                    
                                        
                                        
                                            4.5.1. H2D AXI-Stream Manager (h2d_st_initatr)
                                        
                                        
                                    
                                        
                                        
                                            4.5.2. D2H AXI-Stream Subordinate (d2h_st_respndr)
                                        
                                        
                                    
                                        
                                        
                                            4.5.3. H2D/D2H AXI-MM Manager (dma_mm_initatr)
                                        
                                        
                                    
                                        
                                        
                                            4.5.4. BAM AXI-MM Manager (bam_mm_initatr)
                                        
                                        
                                    
                                        
                                        
                                            4.5.5. BAS AXI-MM Subordinate (bas_mm_respndr)
                                        
                                        
                                    
                                        
                                        
                                            4.5.6. PIO AXI-Lite Manager (pio_lite_initiatr)
                                        
                                        
                                    
                                        
                                        
                                            4.5.7. HIP Reconfiguration AXI-Lite Subordinate (user_csr_lite)
                                        
                                        
                                    
                                        
                                        
                                            4.5.8. User Event MSI-X (user_msix)
                                        
                                        
                                    
                                        
                                        
                                            4.5.9. User Event MSI (user_msi)
                                        
                                        
                                    
                                        
                                        
                                            4.5.10. User Function Level Reset (user_flr)
                                        
                                        
                                    
                                        
                                            4.5.11. User Configuration Intercept Interface
                                        
                                        
                                        
                                    
                                        
                                        
                                            4.5.12. Configuration Slave (cs_lite_respndr)
                                        
                                        
                                    
                                
                            
                                                
                                                
                                                    
                                                    
                                                        A.1.1.1. H2D Data Mover
                                                    
                                                    
                                                
                                                    
                                                        A.1.1.2. D2H Data Mover
                                                    
                                                    
                                                    
                                                
                                                    
                                                        A.1.1.3. Descriptors
                                                    
                                                    
                                                    
                                                
                                                    
                                                    
                                                        A.1.1.4. AXI4-Lite PIO Manager
                                                    
                                                    
                                                
                                                    
                                                    
                                                        A.1.1.5. AXI-MM Write (H2D) and Read (D2H) Manager
                                                    
                                                    
                                                
                                                    
                                                    
                                                        A.1.1.6. AXI-Stream Manager (H2D) and Subordinate (D2H)
                                                    
                                                    
                                                
                                                    
                                                    
                                                        A.1.1.7. User MSI-X
                                                    
                                                    
                                                
                                                    
                                                    
                                                        A.1.1.8. User Function Level Reset (FLR)
                                                    
                                                    
                                                
                                                    
                                                    
                                                        A.1.1.9. Control and Status Registers
                                                    
                                                    
                                                
                                            
                                        
                                                
                                                
                                                    
                                                    
                                                        B.1.6.1. ifc_api_start
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.2. ifc_mcdma_port_by_name
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.3. ifc_qdma_device_get
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.4. ifc_num_channels_get
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.5. ifc_qdma_channel_get
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.6. ifc_qdma_acquire_channels
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.7. ifc_qdma_release_all_channels
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.8. ifc_qdma_device_put
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.9. ifc_qdma_channel_put
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.10. ifc_qdma_completion_poll
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.11. ifc_qdma_request_start
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.12. ifc_qdma_request_prepare
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.13. ifc_qdma_descq_queue_batch_load
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.14. ifc_qdma_request_submit
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.15. ifc_qdma_pio_read32
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.16. ifc_qdma_pio_write32
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.17. ifc_qdma_pio_read64
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.18. ifc_qdma_pio_write64
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.19. ifc_qdma_pio_read128
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.20. ifc_qdma_pio_write128
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.21. ifc_qdma_pio_read256
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.22. ifc_qdma_pio_write256
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.23. ifc_request_malloc
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.24. ifc_request_free
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.25. ifc_app_stop
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.26. ifc_qdma_poll_init
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.27. ifc_qdma_poll_add
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.28. ifc_qdma_poll_wait
                                                    
                                                    
                                                
                                                    
                                                    
                                                        B.1.6.29. ifc_mcdma_port_by_name
                                                    
                                                    
                                                
                                            
                                        B.2.2.3. User MSI-X
Each DMA queue is allocated two interrupts:
- For reporting the Descriptor completion status.
- For User MSI-X: If some event or error happens, user logic generates the User MSI-X.
Application is responsible to poll for a set of registered interrupt addresses and if the User MSI-X is triggered, the corresponding registered interrupt callback gets called. Currently, this callback address is being sent in private pointers of queue configuration registers.
For D2H queue
int
rte_eth_rx_queue_setup (uint16_t  port_id , uint16_t  rx_queue_id ,
                        uint16_t  nb_rx_desc , unsigned int  socket_id , 
                        const struct  rte_eth_rxconf  * rx_conf , 
                        struct  rte_mempool  * mp ) 
struct  rte_eth_rxconf  { 
                        struct  rte_eth_thresh  rx_thresh ; /**< RX ring threshold registers. */ 
                        uint16_t  rx_free_thresh ; /**< Drives the freeing of RX descriptors. */ 
                        uint64_t offloads; 
                        … 
                        uint64_t reserved_64s[2]; /**< Reserved for future fields */ 
                        void * reserved_ptrs [2]; /**< reserved_ptrs [0] should be populated with user MSIX callback */ 
 }; 
  For H2D queue
int
rte_eth_tx_queue_setup (uint16_t  port_id , uint16_t  tx_queue_id , 
                        uint16_t  nb_tx_desc , unsigned int  socket_id , 
                        const struct  rte_eth_rxconf  * tx_conf ) 
struct  rte_eth_txconf  { 
                        struct  rte_eth_thresh  tx_thresh ; /**< TX ring threshold registers. */ 
                        uint16_t  tx_rs_thresh ; /**< Drives the setting of RS bit on TXDs. */ 
                        uint16_t  tx_free_thresh ;  
                        … 
                        uint64_t reserved_64s[2]; /**< Reserved for future fields */ 
                        void * reserved_ptrs [2]; /**< reserved_ptrs [0] should be populated with user MSIX callback */ 
 };