Visible to Intel only — GUID: jtr1620084136317
Ixiasoft
Visible to Intel only — GUID: jtr1620084136317
Ixiasoft
3.2. Bursting Avalon-MM Master (BAM)
The BAM bypasses the Multi Channel DMA IP for PCI Express & provides a way for a Host to perform bursting PIO read/writes to the user logic. The BAM converts memory read and write TLPs initiated by the remote link partner and received over the PCIe link into Avalon-MM burst read and write transactions, and sends back CplD TLPs for read requests it receives. Since the BAM user interface is Avalon-MM, the completions are always expected in order from user logic/Qsys fabric. The BAM supports bursts of up to 512 bytes and up to 32 outstanding read request.
BAM Address Mapping
BAM address = {vf_active, pf, vf, bar_num, bam_addr}
- vf_active: This indicates that SRIOV is enabled
- pf [PF_NUM-1:0]: Physical function number decoded from the PCIe header received from the HIP; PF_NUM which is ($clog2(pf_num_tcl)) is the RTL design parameter selected by the user such that Multi Channel DMA only allocates required number of the bits on Avalon-MM side to limit the number of the wires on the user interface.
- vf [VF_NUM-1:0]: Virtual function number decoded from the PCIe header received from the HIP; VF_NUM which is ($clog2(vf_num_tcl)) is the RTL design parameter selected by the user such that Multi Channel DMA only allocates required number of the bits on Avalon-MM side to limit the number of the wires on the user interface.
- bar_num [2:0]: This denotes the BAR number where the Avalon-ST transaction was received.
- bam_addr [ADDR_SIZE-1:0]: Lower address based on the maximum aperture size amongst all the BARs. Example if BAR3 is selected as 16 MB and BAR2 is 4 GB, the ADDR_SIZE = 32 corresponding to BAR2.
Core Multi Channel DMA passes the maximum aperture size parameter for the address offset and the PF/VF for the BAM module to output the address in the format shown above.