The workarounds provided in the Xilinx Answers for QSPI programming using SDK and/or iMPACT target Xilinx Evaluation Boards (zc702 and zc706).
For custom boards minor modifications may be necessary.
To assist in these modifications, a brief description of the Debug Environmental Variables used by iMPACT and SDK is provided.
Please note that the following examples are for demonstration purposes only.
The correct values to apply to the Debug Environmental Variable are described in the Xilinx Answer related to the specific QSPI programming issue.
Debug Environmental Variables:
XIL_CSE_ZYNQ_DISPLAY_UBOOT_MESSAGES - When set to 1 this variable enables useful Debug prints during programming.
XIL_CSE_ZYNQ_MASKWRITE_00 - Set to F8000700,FFFFFFFF,00001202 and XIL_CSE_ZYNQ_MASKWRITE_01 set to F8000704,FFFFFFFF,00001202 write a particular Zynq register with a specific value.
XIL_CSE_ZYNQ_MASKWRITE_00, XIL_CSE_ZYNQ_MASKWRITE_01, XIL_CSE_ZYNQ_MASKWRITE_02, etc... gives the "order" of the writes
F8000700,FFFFFFFF,00001202 executes a write to F8000700 only for bits set as 1 in the mask FFFFFFFF with the value 00001202
In this case MIO0 and MIO1 are configured to be connected to QSPI1_SS and QSPI0_SS selecting LVCMOS18.
The same Debug Environmental Variable can be used to change clock rates and other settings during QSPI programming.
On a custom board you may need to change the values to match the board configuration and layout.
Use of Debug Environmental Variables in iMPACT and SDK GUI:
The Debug Environmental Variables can be used by the SDK and iMPACT GUI if set in your Windows or Linux machine.
See the screen capture below for an example of a Debug Environmental Variable for Windows being set:
Example of setting a Debug Environmental Variable for Linux:
setenv XIL_CSE_ZYNQ_MASKWRITE_00 F8000708,FFFFFFFF,00001202
Use of Debug Environmental Variables in iMPACT BATCH mode (for advanced user only):
The syntax below can be used to write an iMPACT batch script (for example named qspi.cmd) to set Debug Environmental Variable used during QSPI programming:
setenv -env XIL_CSE_ZYNQ_DISPLAY_UBOOT_MESSAGES -value 1
setenv -env XIL_CSE_ZYNQ_MASKWRITE_00 -value F8000700,FFFFFFFF,00001202
setenv -env XIL_CSE_ZYNQ_MASKWRITE_01 -value F8000704,FFFFFFFF,00001202
setCable -port auto
erase -p 1 -qspi single -image output.mcs
blankcheck -p 1 -qspi single -image output.mcs
program -p 1 -qspi single -image output.mcs
verify -p 1 -qspi single -image output.mcs
To run the iMPACT batch file, open a shell and run impact batch from the folder that contains your .mcs.
impact -batch qspi.cmdNote: For more information, see "iMPACT Help."