can't find xillybus after warm reboot

Questions and discussions about the Xillybus IP core and drivers

can't find xillybus after warm reboot

Postby Guest »

Hi, i use a COMe board as host running Ubuntu Server 16.04, connected with a Artix-7 FPGA through PCIe. Both COMe and FPGA is powered by a carrier board.

During test, i found something wired:

Test 1 : Power on carrier, all system is up. Xillybus can be recognized by using "lspci". Then test it with demoapps, worked.
Test 2 : Do steps as Test1 did. Then excute "reboot", can't recognize xillybus .
Test 3 : Do steps as Test1 did. Then press the "power button" of COMe board, the host shuts down. Re-press the "power button" of COMe board, the host is up again. But still, can't recognize xillybus.

I know "it is the BIOS that does PCIe enumeration only at cold start"(queted comments in viewtopic.php?f=4&t=607), but why a warm reboot after cold boot can't recognize xillybus?
And why Test 3 failed? Is that not a kind of cold boot?
Guest
 

Re: can't find xillybus after warm reboot

Postby support »

Hello,

The most common reason for problems of this sort is that the FPGA wasn't configured when the BIOS scanned the PCIe bus.

So the first thing to verify is that the heartbeat LED is blinking (that is GPIO_LED[0] from the design). Maybe the FPGA board got powered off as a result of a reboot (not something I'd expect, but anyhow).

If you configure the FPGA from flash, there's a time limit for the configuration. The typical figure mentioned is 100-120 ms from poweron to FPGA configuration. Failing to have the FPGA configured on time leads to all kind of strange behaviours.

Since you're using an Artix device (that is, small?) just increasing the configuration clock frequency might do the trick.

Regards,
Eli
support
 
Posts: 802
Joined:

Re: can't find xillybus after warm reboot

Postby Guest »

Thanks for reply!
But in Test2 and Test3, only COMe board is reboot(COMe has its own reboot/power button and is independent of FPGA), FPGA is still on(LED[0] keeps blinking) and running xillybus when COMe reboots. So we can say that when BIOS reboot, FPGA is already configured. I think this eliminate the possibility of FPGA configruation issue.
So why BIOS can't recognize xillybus when it reboot?
Should FPGA reboot along with BIOS?
Guest
 

Re: can't find xillybus after warm reboot

Postby support »

Hello,

It's quite common to reboot the host while keeping the FPGA up and running as is. There should be no problem detecting the PCIe interface after such reboot.

So the next thing to verify is if the PCIe interface is reset by virtue of the PERST# signal. You should see a brief flash of GPIO_LED[3] during the reboot, which indicates that the FPGA has received an PCIe bus reset.

Regards,
Eli
support
 
Posts: 802
Joined:

Re: can't find xillybus after warm reboot

Postby Guest »

Thanks!
We forget to connect PCIe PERST# signal to FPGA, now it works!
So my understanding is : when boot, BIOS activate PERST#, making PCIe inferface and component's LTSSM into Detect state(based on PCIe specification), so they can establish data layer initial link. Then OS is up, based on the info that BIOS provide(probably device vendor ID and device ID), OS probe driver and recognize the xillybus device.
Is this right?
Guest
 

Re: can't find xillybus after warm reboot

Postby support »

Hello,

I'm not so sure about the details on why the PERST# signal is necessary, but I would speculate that it has more to do with resetting the device's configuration registers. This way or another, this signal must be connected, as you noticed yourselves.

Regards,
Eli
support
 
Posts: 802
Joined:


Return to Xillybus