I understand that the jtag puts some SPI controller in the FPGA to talk to the flash, but i see that before the jtag configuring the flash, the FPGA check something in the flash before it puts .jic in it.
what is it checking there(read ID, read non-volatile register,...)?
I ask because i can read/write to the flash with my design but i can't access with jtag, not even verify or blank-check because after it puts the SPI controller in the FPGA it "failed".
in addition, I saw that the jtag configures the non-volatile register in the flash. Just saying.
MT25QL256 device is used 4-byte addressing. Thus, Quartus Progammer set the non-volatile configuration register (NVCR) during programming operation.
However, if you are using a third party programmer, you need to set the register manually.
Thanks for your response.
I understand that the flash's Non-Volatile Register is configuring during the process.
My question is more specific, the SPI controller that the JTAG puts in the FPGA read something from the flash and if it don’t like it, the 'flash loading' "failed".
What the SPI controller reading before loading the flash?
I'm apologize for late reply. I'm AFK for couple of days.
To understand better regarding this, go to Quartus > File > Convert Programming File.. In Programming file type option choose JTAG Indirect Configuration file (.JIC).... Then, select "..." option:
Then, you select the reference for MT25Q01G device
Here, you can understand how it have been Initialization, Program, Erase, Verif/Blank-Check/Examine, and termination.
I hope found this informative.
NOTED: This feature only avalaible in Quartus 18.1.1 (standard version) / Quartus 19.1 (pro version) onwards.