Boards: TE0813 UltraScale+ with TEBF0818 base board
I tried to create a Hello World application using the StarterKit example in Vivado 2023.2, but it did not work. It only reset the board and didn't print anything on the console.
So, I moved on to Vivado/Vitis 2024.1. This worked better and I was able to get Hello World to work. However, I did not use the StarterKit example, I made my own Vivado project.
I then added an extremely simple custom IP block with 8 AXI registers mapped to 0x80000000. When my app tried to access these AXI registers, the program crashes with a DataAbort exception. Here are the steps:
- Build a Vivado project using the same Trenz board for the Project Device as 2023.2 (NOT from the StarterKit)
- TE0813-*-2AE81-A (4GB DDR) with TEBF0818. *SPRT PCB: REV02 (xczu2cg-sfvc784-1-e)
- Added Zynq Processing System and System Reset blocks
- Added an extremely simple custom IP module with 8 AXI R/W registers
- Build a Vitis platform/project using the Vivado .XSA above and the Hello World template
- Run the App
- Console prints "Hello World" and "Successfully ran Hello World application"
- But the system crashes when the application attempts to read one of the AXI registers:
- #define AXI_BASE_ADDR 0x80000000
- Xil_SetMPURegion(AXI_BASE_ADDR, REGION_64K, DEVICE_SHARED);
- Xil_In32(AXI_BASE_ADDR + 0);
- results in a DataAbort exception (fault status = 13)
I added the MPU region which helped me diagnose the fault better, but did not fix the underlying problem.
When the application is run, the "Done" LED on the FPGA board lights briefly, then turns off.
Note that I have built projects this way many times for Zybo and Ultrazed-EV, but this is the first time that I have encountered this. This should have been a pretty quick exercise, but I have been working on this all day with no resolution.
Please let me know if there is anything else I can try.
Thank you.
I should have mentioned that I am using the cortexr_0 processor. I have also tried the cortexa53_0 processor with similar results.
This is not easy to debug remotely, most likely something very fundamental is missing, have you checked that clocks are running?