Scalable Scatter-Gather DMA Intel® FPGA IP User Guide

ID 823097
Date 1/27/2025
Public
Document Table of Contents

7.1. Global CSR

The space contains global control/status registers that control the SSGDMA operation.

Table 124.  Global CSR (GSR) Register Map
Register Name Address Offset Access Type Description
Reserved 0x0-0xFF RO Reserved.
CTRL 0x100 R/W/W1S/RO Control registers.
STATUS 0x104 R/W/W1C/RO Status registers.
WB_INTR_TIMEOUT 0x108 R/W/RO Delay the completion writeback and the interrupt until the time elapsed from a prior writeback/interrupt exceeds the delay value in this register.
VER_NUM 0x10C RO SSGDMA IP version number.
Reserved 0x110 RO Reserved.
WATCHDOG_TIMEOUT 0x114 R/W/RO The watchdog timer in SSGDMA IP in the event of non-responding transaction incident happened.
SCRATCH 0X118 R/W Scratch register.
IP_PARAM1 0x11C RO The parameter settings configured during IP generation time.
DEVICE_PORTS_IRQ_STATUS 0x120 RO Provide and overview of the interrupt status (q_irq) of all H2D MM/H2D ST/D2H ST device ports. Applicable for DMA SoC mode only.
Reserved 0x124-0xF_FFFF RO Reserved.
Table 125.  CTRL (Offset 0x100)
Bit [31:0] Name R/W Access Default Description
[31:8] rsvd RO 0 Reserved.
[7:3] unused_gcsr_ctrl_field R/W 0 This field is set to 0. Write access to this field has no effect.
[2] watchdog_timer_en R/W 0 Enable the watchdog timer for non-responding transaction incident happened.
Note: You must configure this bit only during the initialization stage.
[1] run_prefetch_engine R/W1S 0

Enable the Prefetcher Engine to begin descriptor fetching operation.

This bit is cleared when hard reset is asserted.

[0] reset_prefetch_engine R/W1S 0

Reset the Prefetcher Engine. This bit is automatically cleared when the reset sequence has completed. Therefore, software need to poll for the status of this bit to be cleared by hardware to ensure the reset sequence has finished.

Once the reset sequence in the Prefetcher Engine completes, software is expected to reset each device port based on the reset sequence as described in reset initialization flow section.

You need to set the software to the run_prefetch_engine to begin descriptor fetching operation after the reset completion.

Note: W1S register attribute means the software can write 1 to set the field. There is no effect if the software writes 0 to this field.
Table 126.  STATUS (0x104)
Bit [31:0] Name R/W Access Default Description
[31] irq RO 0 Set when there is an interrupt asserted upon descriptor completion. This interrupt bit is set in the event of any q_irq bit assertion described in the Q_STATUS register from all device ports. The software should poll for the q_irq bits in all available device ports to identify the source of interrupt assertion and clearing them. Hardware automatically clears this irq bit if the software has cleared all q_irq bits in all available device ports.
Note: Applicable for DMA SoC mode only.
[30] watchdog_timeout_error R/W1C 0

Set when the watchdog timeout occurred due to a non-responding transaction in the SSGDMA IP.

[29:24] unused_gcsr_status_field R/W 0 This field is set to 0. Write access to this field has no effect.
[23:0] rsvd RO 0 Reserved.
Note: W1C register attribute means software can write 1 to clear the field. Writing 0 to this field has no effect.
Table 127.  WB_INTR_TIMEOUT ( 0x108)
Bit [31:0] Name R/W Access Default Description
[31:24] rsvd RO 0 Reserved.
[23:20] unused_gcsr_field R/W 0 This field is set to 0. Write access to this field has no effect.
[19:0] wb_intr_timeout R/W 0

Delay the interrupt until the time elapsed from a prior interrupt exceeds the delay value in this register. Each unit is 2ns.

Table 128.  VER_NUM (0x10C)
Bit [31:0] Name R/W Access Default Description
[31:24] rsvd RO 0 Reserved.
[23:16] MAJOR_VER RO 1 Major version number of SSGDMA IP.
[15:8] UPDATE_VER RO 1 Update version number of SSGDMA IP.
[7:0] PATCH_VER RO 3 Patch version number of SSGDMA IP.
Table 129.  WATCHDOG_TIMEOUT (0x114)
Bit [31:0] Name R/W Access Default Description
[19:0] watchdog_timeout R/W 0 The watchdog timer in SSGDMA IP in the event that a non-responding AXI4 transaction scenario happened. Each unit is 2ns.
[23:20] unused_gcsr_watchdog_field R/W 0 This field is set to 0. Write access to this field has no effect.
[31:24] rsvd RO 0 Reserved.
Table 130.  SCRATCH (0x118)
Bit [31:0] Name R/W Access Default Description
[31:0] scratch R/W 0 Scratch register for testing register read and write operations.
Table 131.  IP_PARAM (0x11C)
Bit [31:0] Name R/W Access Default Description
[31] unaligned_access_en RO Build time configured Unaligned addressing access support.
[30:26] num_d2h_st_ports RO Build time configured Number of D2H ST Device Port.
[25:21] num_h2d_st_ports RO Build time configured Number of H2D ST Device Port.
[20:16] num_h2d_mm_ports RO Build time configured Number of H2D MM Device Port.
[15:7] rsvd RO 0 Reserved.
[6] addr_64bits_en RO Build time configured DMA PCIe mode 64-bits address capability.
[5:4] pcie_func_mode RO Build time configured
  • PCIe operation mode.
  • 2'b00 - Native Endpoint.
  • 2'b01-2'b11 - Reserved.
[3:2] rsvd RO 0 Reserved.
[1:0] dma_mode RO Build time configured
  • SSGDMA operation mode.
  • 2'b00 - DMA PCIe mode.
  • 2'b01 - DMA SoC mode.
  • 2'b10 - 2'b11 - Reserved.
Table 132.  DEVICE_PORTS_IRQ_STATUS (0x120)
Bit [31:0] Name R/W Access Default Description
[31:16] rsvd RO 0 Reserved.
[15:0] device_ports_irq_status RO 0

Provide an overview of the interrupt status (q_irq) of all H2D MM/H2D ST/D2H ST device ports.

For example:
  • NUM_D2H_ST_PORTS = 1
  • NUM_H2D_ST_PORTS = 2
  • NUM_H2D_MM_PORTS = 3
The build time configured:
  • device_ports_irq_status [0] represents q_irq status of D2H ST device port 0
  • device_ports_irq_status [1] represents q_irq status of H2D ST device port 0
  • device_ports_irq_status [3] represents q_irq status of H2D MM device port 0
  • device_ports_irq_status [5] represents q_irq status of H2D MM device port 2
  • device_ports_irq_status [15:6] : N/A (default=0)
Note: Applicable for DMA SoC mode only. For DMA PCIe mode, the interrupt source is coming from MSI-X TLP to PCIe host.

Software should clear the corresponding q_irq. device_ports_irq_status allows read-only access for software because it reflects the value of each q_irq eventually.