01-26-2019 10:53 AM
I have an Artix XC7A35T target that has an AES key programmed. I need to reflash the boot SPI via JTAG (indirect programming.)
SPI is functional. The flash was previously programmed, and the FPGA is booting from it. JTAG is functional. I have the correct AES key and can load an encrypted bitstream.
However, I cant seem to do is access the SPI device at all: I get the [Labtools 27-3165] End of startup status: LOW message no matter what kind of programming operaion I try (read, erase, blank check, etc.)
FUSE_CNTL state is 0xC9: CFG_AES_Only and R_EN_B_Key are set.
Previously I was able to reprogram using an encrypted bitstream with CFG_AES_Only set. The trouble seems to have come about once R_EN_B_Key is set.
01-29-2019 09:55 PM
I think the issue is due to CRF_AES_Only rather than R_EN_B_Key. Are you sure you have CFG_AES_Only programmed previously?
If CFG_AES_Only is set, FPGA no longer takes an unencrypted bitstream; as you may know, indirectly programming flash is first to download a bitstream into FPGA, and then this design works in FPGA to get access the SPI interface. With the bit set, this indirect programming core( or bit) could not configure your FPGA any longer.
01-30-2019 11:12 AM
1. "Indirect Mode" means programming SPI over JTAG, not via logic. Check the Configuration guide.
2. As I developed this plaform, I first checked reprogammability with CFG_AES_Only set. This worked. It's only after I had set R_EN_B_Key set that I no longer could access SPI over JTAG.
That's a good suggestion for a workaround though (using a SPI perpheral instanced in my logic to reflash the device.) I may try it if I have time.
02-05-2019 05:11 PM
In thinking on this, I don't know of a method to co-opt the CCLK pin for external control. Do you?
02-05-2019 07:45 PM
Please try programming flash without enabling option of verify.
02-06-2019 10:09 AM
I've done that. Doesn't work. Also, tried only to erase - doesn't work. Basically, I cannot access the SPI flash over JTAG at all.