Programming Spartan FPGA Development Board

The JTAG headers JP10 and SL1 interface to the FPGA through the TCK, TDI, TMS etc pins. So, how do I program the Serial SPI Flash (AT45DB) from the JTAG? I’m planning on purchasing the Digilent JTAG-USB programmer.

Do I need to set the Master SPI on the mode jumpers? Does the Digilent Adept ‘talk through’ the FPGA to burn the SPI Flash. Anything else I need to think about?

Thanks

I found app note XAPP974 - Indirect Programming of SPI Serial Flash PROMs with Spartan-3A FPGAs. While it was written for the Spartan 3A and an older version of iMPACT it sheds some light on how to program the SPI Flash. The SPI Flash can be indirectly programmed from the JTAG. It turns out that iMPACT downloads a ‘proprietary JTAG-to-SPI core’ to the FPGA, then programs the SPI Flash via the JTAG interface and the new core program running inside the FPGA.

The app note also provides details on how to generate an SPI Flash hex file from the bitstream .bit file using the iMPACT software.