We are in the final development phase of our product, where we use Intel Arria 10 10AX048H4F34E3SG + Micron MT25QU512A as config. Flash for FPGA.
We have encountered the problem with programming of flash.
When we program the flash via JTAG using .jic file FPGA boots up successfully, but we need .bin file for flash to be pre-programmed during manufacturing on site.
After we used .bin file generated by Quartus tool or .bin file that we read out directly from flash that had been programmed with JTAG and we use this .bin file for pre-programming during manufacturing the FPGA is not successfully configured.
Again after re-programming it with JTAG+.jic everything works.
Have you encountered same problem before?
Is there anything that programming via JTAG does differently than direct programming into flash memory (setting some bit in control register of flash etc..)?
I have found this answer:
"I have had that happen to other customers before. You are using a Micron Config device not an Intel EPCQ512. Your Micron device will work fine and is supported.
It has a NVCR non- volatile configuration register that needs the correct value in it. If you use Quartus( JTAG) it will write to that register and set it in the correct mode, so after you touch it once with the Quartus programmer it should work fine.
If you just program the flash with the bin file without having the register setting the mode correctly chances are you will fail configuration because the default mode of the Micron(3 bit addressing.) is different than the default EPCQ device which is 4 bit addressing
You can have your manufacturing also write to that NCVR register when they write the Bin.
You may want to the read the register of a system that works so you know exactly the value to write to it."
So is it because of config register of Flash IC?
Yes, configuration register of the micron device is slightly different from EPCQ.
You may need to program bin file with correct configuration setting.