05-30-2017 08:48 PM
I am using a ZYNQ 7000 plugged into a PCIe slot. Things can be working but idle (no HOST PCIe access, and firmware in a very tight loop doing nothing except toggling a few pins). If the ZYNQ board is left Idle long enough, then some sort of ZYNQ reset happens (although not a full reset).
The net result is that if I use a PCI config scanner such as RW_Everything, then the ZYNQ board isn’t found (no PCI configuration registers). I have other indications that the ZYNQ firmware is still running and no reset occurred (stays in the tight loop without program counter being reset to its starting point).
This behavior is NOT what occurs with a full reset (Pressing the S3 button on the board). I have a strong belief that there is system noise causing a partial reset on the ZYNQ board. This is because if I run a slightly different piece of firmware that DOESNT toggle a couple of pins, the test passe)
Any ideas what this can be ? My hope is that there is some signal on the ZYNQ board that I can put a cap on to fix the noise issue. I do not believe the noise is on the obvious reset input (button S3), as the failure that occurs is different (noise on the reset button itself should reset the PCI BARS, but the PCI configuration registers themselves should still be visible.).
Note that when in this fail state, pressing the S3 button will bring the ZYNQ back to life (firmware is reset, and ZYNQ configuration registers are visible with BARS being set to zero.)
05-30-2017 10:03 PM
>> This is because if I run a slightly different piece of firmware that DOESNT toggle a couple of pins
it seems like you have a signal integrity problem with your board. One thing to do is to isolate which pin(s) are causing the issue and review the layout to see if there is anything obvious. Things to check: one of the signals involved are too close to the pcie clock? pcie clock or data not routed properly (impedance matched, differential routing done properly?)
05-31-2017 08:13 PM
We are using a off the shelf ZYNQ board, as well as a off the shelf daughter card, so I dont think its layout. Also, the PCI config can get "reset" even if the board is completely idle (no PCI traffic) and just the two pins are toggling.
So it seems to be something basic, but i have no idea where to look on the ZYNQ board for the noise.