OFS / oneapi-asp

Intel® oneAPI Accelerator Support Package (ASP)
MIT License
2 stars 8 forks source link

*[Feature]- Add parent/child DFH for multi-link platforms* #146

Closed DouglasGroen closed 2 months ago

DouglasGroen commented 2 months ago

Description

Multi-PCIe-link platforms require some kind of MMIO response on the 'child' links. The example AFU design leverages a module from the PIM (which is a wrapper around a module provided by the FIM) which handles MMIO requests in the DFH address-space for the child link. This PR also creates a different variant of the afu_slave IP in the PD system for the parent DFH information with a list of child IDs (as expected by OPAE and shown in the example design: https://github.com/OFS/examples-afu/tree/mcadler/multi_link/tutorial/afu_types/04_multi_link). Manual changes are required to enable the 2nd link - replace the afu_slave IP with the 'parent' version, update the number of DMA/USM channels to 2, uncomment the DMA/USM channels in header file, update the parameter tcl file to include 2 DMA channels; you also need to select the appropriate VF/link number from the array of AXI-S interfaces coming in from the FIM/PIM for the 1st and 2nd links.

Tests run:

Compilations of iseries-dk with 1-link and 2-link. More builds are required on other platforms, and 2-link validation is underway in-lab.

DouglasGroen commented 2 months ago

Tested on n6001 and iseries-dk (1-link) in hw. Compilations for d5005, fseries-dk were successful. For 2 PCIe links (iseries-dk), I can see the child AFU ID on the first VF of the 2nd link; however, the fpgaOpen call in the mmd fails to open the mmio_token due to an invalid parameter.