hmm, i might have been to focused on XSDK.
I tried using vivado, however it does not seem to respond well. In the tcl-console in Vivado i run:
exec program_flash -f BOOT.bin -fsbl <path>/test_board/prebuilt/software/3cg_1e_2gb/zynqmp_fsbl_flash.elf -flash_type qspi-x8-dual_parallel
This successfully writes to QSPI, and the UART displays:
--------------------------------------------------------------------------------
Xilinx Zynq MP First Stage Boot Loader to write QSPI Flash (TE modified)
Release 2018.3 Oct 28 2019 - 17:41:38
PMU-FW is not running, certain applications may not be supported.
Now we are in the "limbo-state" and i run
get_hw_devices
and i get back
xczu3_0 and
arm_dap_1 I guess its fine if I can reset one of the cores for a start (assuming I should have xczu3_0 and xczu3_1) hence running
boot_hw_device xczu3_0
And the results give me:
INFO: [Labtoolstcl 44-664] Will wait up to 180 seconds for booting to complete.
WARNING: [Xicom 50-184] Defaulting to hardware boot mode: QSPI32.
INFO: [Labtools 27-2278] Zynq reset successful
Which seems fine, however I never see the application boot up, and print to UART.
I also tried with the prebuilt from Trenz (TE::pr_program_flash_binfile -swapp hello_te0820).
However if i press the power-on-reset button on the carrierboard (and wait for it to boot up), and run
boot_hw_device xczu3_0
I see the application boot, and print to UART. Hence like previously, it seems only to work, when the device actually have been booted.
I dont know whether itis worth mentioning that our boot.bin consists of fsbl.elf, pmufw.elf, bitstream.bit, bl31.elf, uboot.elf, apu0.elf and apu1.elf. Where apu0 is for APU0 and apu1 is for APU1.