Problem with HIP pcie gen3x16 two functions
Hi everyone,
Operating system: CentOS Linux release 7.4.1708
Base board: ASUS P8Z77-V LK
FPGA: 1SG280LN2F43E2VG
I have problem with pcie gen3x16 x2 (two functions). FPGA card inserted in slot PCIEX16_1 (blue), slot PCIEX16_2 is available (not used).
Base board provides maximum speed and width (gen3x16), all functions are displayed in the status (lspci):
01:00.0 Unassigned class [ff00]: Altera Corporation Device e10a (rev 01)
Subsystem: Device a106:2804
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
Memory at f2000000 (32-bit, non-prefetchable) [size=2M]
Memory at f22c0000 (32-bit, non-prefetchable) [size=64K]
Memory at f2280000 (32-bit, non-prefetchable) [size=256K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/16 Maskable+ 64bit-
Capabilities: [70] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [148] Virtual Channel
Capabilities: [178] Alternative Routing-ID Interpretation (ARI)
Capabilities: [188] #19
Capabilities: [b80] Vendor Specific Information: ID=1172 Rev=0 Len=05c <?>
Kernel driver in use: dd_board
01:00.1 Unassigned class [ff00]: Adobe Systems, Inc Device e10b (rev 01)
Subsystem: Device a106:2804
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at f2240000 (32-bit, non-prefetchable) [size=256K]
Memory at f2200000 (32-bit, non-prefetchable) [size=256K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/16 Maskable+ 64bit-
Capabilities: [70] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [178] Alternative Routing-ID Interpretation (ARI)
Kernel driver in use: dd_board2
No errors in drivers.
The error occurs when addressing the second function - function 1 is always ignored. The problem is in the decoding signal from HIP (rx_st_func_num_o), the signal value is always 0.
In the SignalTap, I can see that the packages for the first function are coming correct: header and data. The headers contain the bar addresses for the first function but rx_st_func_num_o = 0.
Because of this, all requests go to function 0. The project was built in two different software versions (18.0pro, 18.1pro).
The following pcie configurations work without errors (bar settings, drivers (and test soft) and slot (PCIEX16_1) are the same): gen3x16 with one function, gen3x8 with two functions or one function,
gen2x8 with two functions or one function.
Has anyone encountered such a problem?
Intel pcie HIP documentation:
https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug_s10_pcie_avst.pdf
Base board documentation (page 33):
Best regards,
Alex