4.2.1. Aligning AXI MCDMA IP Settings with AXI Streaming IP for PCI Express
As the AXI MCDMA IP (intel_pcie_axi_mcdma) needs to interface with the AXI Streaming IP for PCI Express* (intel_pcie_ss_axi), IP settings and interfaces of both IPs must be aligned to ensure both IPs can operate smoothly.
The table below covers IP settings that must be aligned between the two IPs. For example, when the Hard IP Mode of the AXI Streaming IP is configured as a Gen3 x4 Interface 128-bit, the PCIe Mode of the AXI MCDMA IP must be aligned and configured to Gen3 1x4.
AXI MCDMA IP Settings | AXI Streaming IP Settings | Description | ||
---|---|---|---|---|
IP Settings | PCIe Interface Settings | |||
PCIe Mode | Gen5/4/3 1x16 | PCIe Mode | Gen5/4/3 1x16 | |
Gen5/4/3 1x8 | Gen5/4/3 1x8 Gen5/4/3 2x8 |
To generate 1x8, create a quartus.ini file in the project directory with the content: ini_guard=on. | ||
Gen5/4/3 1x4 | Gen5/4/3 1x4 Gen5/4/3 4x4 |
To generate 1x4, create a quartus.ini file in the project directory with the content: ini_guard=on. | ||
Port Mode | Native Endpoint | Port Mode | Native Endpoint | |
Root Port | Root Port | |||
Multichannel DMA User Mode | ||||
BAR2 Address Width | 4 KBytes - 12 bits | BAR2 Type | 64-bit prefetchable memory | |
... | ||||
8 EBytes - 63 bits | BAR2 Size | 4 KBytes - 12 bits | ||
... | ||||
8 EBytes - 63 bits | ||||
Enable multiple physical functions | On / Off | Enable multiple physical functions | On / Off | |
Total physical functions (PFs) | 1 - 8 | Total physical functions (PFs) | 1 - 8 | |
Enable SR-IOV support | On / Off | Enable SR-IOV support | On / Off | |
Total virtual functions of physical function | 0 - 256 | Total virtual functions of physical function | 0 - 256 | |
Enable MSI-X | On | Enable MSI-X | On | |
BAR0 Type | 64-bit prefetchable memory | BAR0 Type | 64-bit prefetchable memory | |
BAR0 Size | 4 MBytes - 22 bits | BAR0 Size | 4 MBytes - 22 bits | |
BAR1/3/4/5 Type | Disabled | BAR1/3/4/5 Type | Disabled | |
Expansion ROM Size | Disabled | Expansion ROM Size | Disabled | |
... | ... | |||
16 MBytes - 24 bits | 16 MBytes - 24 bits | |||
BAM+MCDMA, BAM+BAS+MCDMA User Modes | ||||
Enable multiple physical functions | On / Off | Enable multiple physical functions | On / Off | |
Total physical functions (PFs) | 1 - 8 | Total physical functions (PFs) | 1 - 8 | |
Enable SR-IOV support | On / Off | Enable SR-IOV support | On / Off | |
Total virtual functions of physical function | 0 - 256 | Total virtual functions of physical function | 0 - 256 | |
Enable MSI-X | On | Enable MSI-X | On | |
BAR0 Type | 64-bit prefetchable memory | BAR0 Type | 64-bit prefetchable memory | |
BAR0 Size | 4 MBytes - 22 bits | BAR0 Size | 4 MBytes - 22 bits | |
BAR2 Type | Disabled | BAR2 Type | Disabled | |
64-bit prefetchable memory | 64-bit prefetchable memory | |||
64-bit non-prefetchable memory | 64-bit non-prefetchable memory | |||
BAR2 Size | 4 KBytes - 12 bits | BAR2 Size | 4 KBytes - 12 bits | |
... | ... | |||
16 EBytes - 64 bits | 16 EBytes - 64 bits | |||
BAR4 Type | Disabled | BAR4 Type | Disabled | BAR4 is needed when BAS is enabled, i.e., in BAM+BAS+MCDMA user mode. |
64-bit prefetchable memory | 64-bit prefetchable memory | |||
64-bit non-prefetchable memory | 64-bit non-prefetchable memory | |||
BAR4 Size | 4 KBytes - 12 bits | BAR4 Size | 4 KBytes - 12 bits | |
... | ... | |||
16 EBytes - 64 bits | 16 EBytes - 64 bits | |||
BAR3/5 Type | Disabled | BAR3/5 Type | Disabled | |
Expansion ROM Size | Disabled | Expansion ROM Size | Disabled | |
... | ... | |||
16 MBytes - 24 bits | 16 MBytes - 24 bits | |||
Endpoint Bursting Master, Bursting Slave, BAM+BAS User Modes | ||||
BAR0/2/4 Type | Disabled | BAR0/2/4 Type | Disabled | |
64-bit prefetchable memory | 64-bit prefetchable memory | |||
64-bit non-prefetchable memory | 64-bit non-prefetchable memory | |||
BAR0/2/4 Size | 4 KBytes - 12 bits | BAR0/2/4 Size | 4 KBytes - 12 bits | |
... | ... | |||
16 EBytes - 64 bits | 16 EBytes - 64 bits | |||
BAR1/3/5 Type | Disabled | BAR1/3/5 Type | Disabled | |
Expansion ROM Size | Disabled | Expansion ROM Size | Disabled | |
... | ... | |||
16 MBytes - 24 bits | 16 MBytes - 24 bits | |||
Bursting Slave, BAM+BAS User Modes | ||||
Enable MSI Capability (Native Endpoint mode only) | On / Off | PF0 Enable MSI | On / Off | |
Enable ATT (Root Port mode only) | On / Off | Enable Address Translation Services (ATS) | On / Off |
Some of the AXI MCDMA IP interfaces are enabled by default. This requires the corresponding optional interface of the AXI Streaming IP to be enabled so that signals from both IPs can be connected.
AXI MCDMA IP Interfaces Enabled by Default | AXI Streaming IP Settings | |
---|---|---|
Control Shadow Interface (Native Endpoint mode only) | Enable PCIe0 Control Shadow Interface | On |
Completion Timeout Interface | Enable PCIe0 Completion Timeout Interface | On |
Configuration Intercept Interface (Native Endpoint mode only) | Enable PCIe0 Configuration Intercept Interface | On |
Error Interface | Enable PCIe0 Error Interface | On |
As the axi_st_clk and axi_mm_clk of the AXI MCDMA IP are expected to be driven by coreclkout_hip_toapp of the AXI Streaming IP, the PLD Clock Frequency IP parameter must be configured to be aligned with supported frequencies of the AXI MCDMA IP.
AXI MCDMA IP Supported Clock Frequencies | AXI Streaming IP Settings | |
---|---|---|
Gen5/4: 400/425/450 MHz | PLD Clock Frequency | Gen5/4: 400/425/450 MHz |
Gen3: 200/250 MHz | Gen3: 200/250 MHz |