3.8 QSPI Flash Programming via JTAG
The Xilinx Vivado and SDK software offer QSPI flash programming support via JTAG. For more information,
please refer to the Xilinx documentation [22].
3.9 QSPI Flash Programming from an External SPI Master
The signals of the QSPI flash are directly connected to the module connector for flash access. As the flash
signals are connected to the SoC device as well, the SoC device pins must be tri-stated while accessing the
QSPI flash directly from an external device.
This is ensured by pulling the PS_SRST# signal to GND followed by a pulse on PS_POR#, which puts the SoC
device into reset state and tri-states all I/O pins. PS_SRST# must be low when PS_POR# is released and kept
low until the flash programming has finished. Afterwards, all SPI lines and PS_SRST# must be tri-stated and
another reset impulse must be applied to PS_POR#.
Figure 13 shows the signal diagrams corresponding to flash programming from an external master.
Figure 13: QSPI Flash Programming from an External SPI Master - Signal Diagrams
Warning!
Accessing the QSPI flash directly without putting the SoC device into reset may damage the equipped
SoC device, as well as other devices on the Mercury ZX1 SoC module.
3.10 NAND Flash Programming
The Xilinx SDK software offers NAND flash programming support via JTAG. For the programming operation,
type “nand_8” must be selected. Please note that Vivado Hardware Manager does not support the NAND
flash type equipped on the Mercury ZX1 SoC module.
When programming the NAND flash in u-boot, the user must make sure that the NAND controller is en-
abled; the u-boot available in the Enclustra Linux build environment includes a built-in command to switch
the current configuration to use NAND flash as storage:
zx_set_storage NAND
Note that for a successful programming the flash image must be written avoiding the bad sectors of the
flash (by using nand.jffs2 command).
D-0000-403-002 45 / 56 Version 05, 25.07.2019