CycloneIV GX: How do I implement registers in configuration space, or multiple PCI functions?
For a customer's test environment I need to emulate a number of PCIe devices so that error states can be simulated easily. The tests shall run inside a virtual machine that receives a PCIe device as a passthrough.
I have a CycloneIV GX board lying around and would like to use that for the initial implementation, but I'm open to switching to another family if needed (although I'd need to commission a board then).
I can make a single PCIe device with a 64-bit MMIO mapping appear in the system, this works so far.
Now I'd like to split my device into two functions, one for test control/status readback, and one for the device that is going to be passed through to the VM, but I haven't found an option to define multiple functions in MegaWizard. Is this possible?
In addition, the emulated device has extra registers in configuration space, above 0x40. I haven't been able to see configuration space accesses on the Avalon-ST interface, can this be enabled?