We tested picoZed board (7010) on the FMC V2 carrier board and got the example codes working ("Hellow World", "Echo server", etc) without problems.
We then designed our own carrier board with some custom functions. We kept all the 20 PS MIO user pins the same as the FMC V2 carrier board: to SD card, USB UART, PS_LED1 etc. Also we kept the Gig Ethernet pins (PETH_MD1_P, PETH_MD1_N, etc) the same locations as the FMC V2 carrier board. The power and reset pins are the same as the FMC V2 carrier board.
In Vivado, we configure the PS with only one axi gpio: pl_led_1bit. There is no other PL logic. In SDK, the "Hello World" and "Echo server" example works fine on FMC V2 carrier board. For the "HelloWorld" application, I measured the UART pins (JX3.42, and JX3.44) and got the UART signals. For the "Echo sever" application, I can ping the picoZed board without issues.
Then we moved the same pizoZed board to our custom carrier board. After power on, the D1 (power good) LED light up. We used the same .bit file to program the FPGA on picoZed board and run applications. We just can't get the applications works on our carrier board. For the "HelloWorld" application, there is no signal from the UART pins (JX3.42, and JX3.44). For the "Echo sever" application, I can't ping the picoZed board on our custom carrier board.
I also measured the voltage and the reset pints (PG_Module, Carrier_SRST_N) on our custom carrier board and didn't find problems.
I have been stuck with this problem for two weeks and don't understand why this simple PS peripheral IO (UART1, Ethnet 0) of Zynq processor don't work on our carrier board. IAre there any other requirements to make the Zynq processor to run and spit out UART data on the UART pins ? Someone must have done the similar approach to use picoZed board before. I will highly appreciate if someone can shine some lights on this problem.
Thank you very much,