今天遇到一个问题:在烧zynq7015的flash时,使用vivado2016.4一直没有问题,但是使用2018.3烧写时,必须要添加fsbl文件,所以就将制作Boot.bin文件的fsbl文件添加进去了,但是烧写是出现如下错误:
WARNING: [Xicom 50-100] The current boot mode is QSPI32.
If flash programming fails, configure device for JTAG boot mode and try again.
Flash programming initialization failed.
之前烧写从来没有遇到过,后来查阅资料找到了解决方法,具体的链接如下:https://forums.xilinx.com/t5/ACAP-and-SoC-Boot-and/Vivado-2018-2-gt-unable-to-reprogram-QSPI-via-JTAG-in-QSPI32/td-p/889197。在该链接中提到了三种解决方法:
-
Use older Vivado Version (only temporary a workaround and not a good solution for the future)
-
Change TE0782 CPLD firmware to JTAG (but this is only a fallback for this module and not good to handle for flash programming only)
-
Modify a second FSBL for Vivado/SDK GUI only (I would recommend this way, because it’s very easy)
So for option 3 with second FSBL do following:
Use Boot.bin with “normal” FSBL and create a second modified FSBL for the Vivado/SDK GUI only. On the second FSBL, you must only overwrite boot mode pin readback on main.c with JTAG Mode, see:
/*
* Read bootmode register
*/
BootModeRegister = Xil_In32(BOOT_MODE_REG);
BootModeRegister &= BOOT_MODES_MASK;
/* Add this modification: */
BootModeRegister = JTAG_MODE;
注意的是:第三种方式需要修改两处,只修改一处可能还会包错。
没有回复内容