Hey everyone,I'm having problems with getting an Arria10 custom platform to work on my Windows 7 and Windows 10 machines. The fit created for the platform is made by adapting the Arria 10 reference design by interchanging the original DDR4 core with our DDR3 IP core and changing the pinout to match the changes made. As the project is time constrained, no changes have been made to the PCIe IP to quickly get the platform operational for a demo. Compiling the fit did not result in any problems and the PCIe device is recognized by the PC, as it should be. However, when moving to getting the drivers to work problems started to show up. I have tried to run the device on both a Windows 10 and a Windows 7 PC, and both PCs run into different problems. After running aocl install and a reboot, the Windows 10 PC reports in device manager that our board is an "Other device -> PCI device". The hardware ID matches the ID in the .inf script used when installing the drivers and it shows the problem code 0000001C: missing driver. Next, the Jungo Connectivity drive seems to work correctly as no problems are reported. Now, when running aocl diagnose with debugging environmental variables enabled, the following output is reported indicating that something goes wrong with interrupts:
:: MMD DEBUG LEVEL set to 10000 :: PCI Class Code and Rev is: 12000101 :: Init: Bar 4, Total offset 0x10000, diff_endian is 0 :: Init: Bar 4, Total offset 0x0, diff_endian is 0 :: Init: Bar 4, Total offset 0xc870, diff_endian is 0 :: Init: Bar 0, Total offset 0x0, diff_endian is 0 :: Init: Bar 4, Total offset 0xcfc0, diff_endian is 0 :: Init: Bar 4, Total offset 0xcf80, diff_endian is 0 :: Init: Bar 4, Total offset 0xcf70, diff_endian is 0 :: Init: Bar 4, Total offset 0xcfe0, diff_endian is 0 :: Init: Bar 4, Total offset 0xcfd0, diff_endian is 0 :: Init: Bar 4, Total offset 0x4000, diff_endian is 0 :: Init: Bar 4, Total offset 0xb000, diff_endian is 0 :: Init: Bar 4, Total offset 0xcff0, diff_endian is 0 :::::: Read 64 bits (0x0) from 0x0 (0xc870 with offset) :::::: Wrote 64 bits (0x0) to 0x0 (0xc870 with offset) :::::: Changed segment id to 0. :::::: Read 64 bits (0x0) from 0x0 (0xc870 with offset) :: Doing PCIe-to-fabric read test ... :::::: Read 32 bits (0xa0c7c1e3) from 0x0 (0xcfc0 with offset) :: PCIe-to-fabric read test passed :::::: Read 32 bits (0x0) from 0x0 (0xcfe0 with offset) :: Uniphys are calibrated :::: Successfully locked descriptor table memory. :: Enabling PCIe interrupts. :::::: Wrote 32 bits (0x0) to 0xcfa0 (0xcfa0 with offset) :: Interrupt handler: :: KMD Bar4 addr 0xFFFF9E817B5A0000 :: Read <- 0x7b5acf90 :: Mask 0x1 :: Write -> 0x7b5acfa0 MMD ERROR: failed to enable interrupts in the KMD. Phys Dev Name Status Information acla10_ref0 Failed Board name not available. Failed initial tests, so not working as expected. Please try again after reprogramming the device. Found no active device installed on the host machine.I already created a support ticket for this problem, but all they said about it is that this probably is a host problem and that I should try to get the drivers working on a Windows 7 machine, and so I did. On Windows 7, I run into a totally different problem. Here, after running aocl install and performing a reboot, the PCI device is correctly recognized as an Intel FPGA accelerator. However, both the accelerator and the Jungo drivers report problem ID 00000034, which according to google tells that Windows cannot determine the settings for this device. When running aocl diagnose, now the following error shows:
aocl diagnose: failed 32 times. First error below: Unable to open the kernel mode driver. Please make sure you have properly installed the driver. To install the driver, run aocl install DIAGNOSTIC_FAILEDAny help for both problems would be very welcome! Kind regards, Remy Quist
I found no matter the driver installed sucessfully, the program print "Success" in the screen. Maybe you can check the return number of "aocl install" to make sure you have already installed the driver successfully. And you should stop driver signature enforcement in Windows.
Driver signature enforcement in Windows was the cause of the problem.The tooling should definitely check whether the driver has truly been installed instead of always just reporting success... Thanks! :)