Having trouble getting standalone template "Hello World" to work. Symptoms look like bad baud rate by surprising programming of baud rate generator.
I can see the MicroZed built-in Linux boot messages on the USB serial port in PuTTY at 115200 baud. I configured my own ps7_system in Vivado IPI based on the provided MicroZed_PS_properties_v03.tcl, but after applying them tweaked some clock frequencies in the block configuration GUI, such that the clock going to the PS UART baud rate generator was 75MHz instead of the original 50. The various resulting .h files included constants of 74999999 which I took to mean it understood. But I couldn't get "Hello World" to show up ungarbled on the terminal until I used mrd commands to read the slcr and uart control registers and saw that although 75MHz was going the baud rate generators, the generators themselves were programmed as though 50MHz was going in. Confirmed by boosting the baud rate in PuTTY to 172.8K.
What went wrong? I exported my Vivado design (bd plus fabric) to SDK after generating a bitstream (which I included). The contents of xparameters.h looked right.
1. I found the C source code in the library to set the UART's baud rate, but can't find where it gets called.
2. I now see the baud rate generator also gets programmed, to 115.2K, in ps7_init.c (which I've already overwritten with a new version where I changed the input clock to the uart back down to 50MHz). Could this have been the source of the erroneous baud rate? So the default application never sets the baud rate?
And now, I've regenerated the bitstream and ps7_* files, the bsp, and the helloworld.c application. And I get nothing on the serial port (but the residual Linux boot in the QSPI that I've not overwritten yet still works!).
Any ideas?
twv@