Intermittent boot hang - Picozed w/ custom carrier
I'm going to do my best to give all the details I can.
I am using a picozed (with Zynq 7030) and a custom carrier board.
At the moment, I am using the Zynq PL as a PCIe root host (as in this video). The code is very similar to theirs.
Using Vivado 2016.1
The boot process goes through FSBL, U-Boot, and linux kernel 4.40-xilinx (with Fedora 20 OS).
Boot off the carrier, which allows booting from uSD or PCIe (via an NVME).
Whether I am booting from the uSD or PCIe device, there is an intermittent hang (maybe once every ~5 boots) when U-Boot will fail to spin up the kernel (and the boot screen hangs at the "Starting Kernel..." message).
Weird part: This issue goes away when I remove the PCIe root host in the PL code and reappears when I insert it back.
I should also be clear that on uSD boot, the NVME (PCIe boot device) has been totally removed.
An lspci command (on a successful uSD boot with PCIe root host on PL and removed NVME) shows:
Is it time to break out ChipScope already? The custom carrier board does make me suspicious.
If so, what signals would you look at? PCI_ref_clk, resets, etc.
Maybe update to Vivado 2016.4?
I guess I'm just wondering if anyone has happened upon an issue like this or if you'd like to bang your head against a wall with me teasing out this weird behavior. Please let me know if you find my description lacking and I'll do my best to provide more info.