All non-Micron SPI flash devices capable of x4/x8 operation fail to correctly configure 7 Series and UltraScale FPGAs if using the 2014.1/2014.2 versions of Vivado Device Programmer.
This is due to a Software issue, the Quad Enable bit is not being set properly.
Note: This only affects bitstreams made specifically for SPIx4 or SPIx8 programming.
A bitstream for SPIx1 or SPIx2 will boot the FPGA properly.
SPI Flashes Affected:
Please follow these steps:
- Perform the SPI x4/x8 Indirect programming sequence as you normally would.
- Run the attached prog_spi_quad_enable.tcl script, following these steps:
- In the Vivado Tcl console, type "refresh_hw_device [lindex [get_hw_devices] 0]"
- Run "current_hw_core [lindex [get_hw_core] 0]"
- Source the script
- Run "xspi_set_spi_clk"
- Run "xspi_read_id" to read the device ID (To verify connections between the FPGA and SPI device)
- Run "xspi_read_statregs" to read status and configuration registers
- Run "xspi_prog_quad_enable 1" to program the config register quad enable bit. (Run "xspi_prog_quad_enable 0" to clear quad enable bit)
- Run "xspi_read_statregs" to read the status and updated configuration register values.
- Boot the Device by selecting Boot Device (boot_hw_device [lindex [get_hw_devices] 0]) or by pulsing the PROG pin.
This issue is addressed and fixed in the 2015.1 version of the tools.
Was this Answer Record helpful?