On Fri, Oct 7, 2011 at 10:22 AM, Abdelghani Ouchabane <abdelghani@xxxxxxxxx> wrote: > Bjorn Helgaas wrote: >> >> [added cc: linux-pci@xxxxxxxxxxxxxxx] >> >> On Fri, Oct 7, 2011 at 1:16 AM, Abdelghani Ouchabane >> <abdelghani@xxxxxxxxx> wrote: >> >>> >>> Hallo, >>> >>> We are developing a FPGA board connected to a Fedora 15 PC host over >>> PCIe. >>> Right now, in the implementation and debug phase, I often need to power >>> off >>> and >>> power on the device or try different boards. This causes a problem with >>> the >>> Fedora 15 running on the AMD PC. >>> >>> Typically the PC is booted when I need to insert the device under test. >>> As >>> expected, the Linux doesn't find the device and the software app cannot >>> talk >>> to it. >>> >>> * If I do "lspci -v" then it does not list our device. >>> >> >> Do you have pciehp enabled and loaded? I would think a PCIe hot-add >> should automatically rescan the bus. Does dmesg say anything when you >> do the hot-add? >> > > Thanks Bjorn, > > Yes, I have them : > > **************************************************************************************************** > lsmod : > > pciehp 20282 0 > cgosdrv 17632 0 > **************************************************************************************************** > /etc/modprobe.d/pciehp.conf > alias pci:v00001234d00000002sv00001234sd00000001bc11sc80i00 pciehp > options pciehp pciehp_force=1 pciehp_debug=1 > **************************************************************************************************** > > After I plug my board in, I executed echo 1 > /sys/bus/pci/rescan It seems like a pciehp bug that you have to rescan explicitly. But I'm not a pciehp expert and I haven't looked at the code. >>> * But our software returns : 0xFFFFFFFF This is reading from your device's memory region. It looks like the device is configured correctly (BAR values are reasonable and memory decoding is enabled) and I assume the bridges leading to it are configured correctly (if you posted the complete dmesg log we could tell for sure). After that point, Linux is out of the way and it's just a question of whether your device responds correctly to the memory access. Are you sure the device is supposed to return something other than 0xFFFFFFFF? If it's memory, can you write to it and read the new value back? Can you use a PCIe analyzer and see if the device is responding correctly on the bus? Other than the possible pciehp rescan problem, this just looks like a problem with your FPGA. Bjorn -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html