My team is very new to this platform. I was hoping if people wouldn't mind answering some basic questions so that we don't waste our time researching solutions that don't exist.
I am the test engineer, not the ultimate programmer of this system.
We inherited a system built around a Cyclone10 + 1Gb flash. We have a JIC file that I use with the Quartus comment line to JTAG to new devices. Once this is done, the image contains code/IP that allows us to update secondary images through a USB interface on our system (That is, we only use Quartus for the initial JTAG, not for any subsequent flash updates).
Using Quartus 21.1 (I believe)
The JIC is 128MB, and takes 3+ minutes to program. Apparently the entire flash is written, and mostly it's set to 0xFF to erase what was there. We were told this was done to ensure the device is clean when running JTAG, sort of like a reset.
As I am in charge of the initial factory programming, I know which boards have not been programmed, and in that case I don't need to write the entire flash.
When I ask the programmers if they can "shorten" the JIC, or only write a portion of it (around 12MB), they are unsure. They are only working with rbf/rpd files, and have no experience producing a JIC for initial JTAG.
Since I call the command line programming tool, I know that the JIC must contain a lot of the necessary parameters for programming, since basically I just point to it and the programming device.
So here are the basic questions:
1) In general, do we need to erase/initialize the entire flash on a new flash/FPGA? I suspect that was only done to make sure any old versions/data was erased during initial development. But that was set up by a vendor that doesn't exist anymore.
2) If that's not necessary, can the programmer command call be modified to only program the necessary portion of the JIC? I think this might save several minutes of time.
3) Can the JIC be edited to change the amount of data programmed?
We need to learn how to handle all this internally, but it would be helpful to know if these things are possible, so we don't waste time chasing them.
I appreciate any help, even simple Yes/No answers, but of course, letting me know what words to search for or even manual pages would be very helpful. Thank you!
Thank you for contacting Intel community.
- Which Cyclone 10 did you used? C10 LP or C10 GX?
- Have you refer to C10 LP or GX handbook?
You can also search for documentation here;
Thank you! It appears we are using the GX.
I'll take a look at the handbook. I guess the most important question is this:
When creating a JIC that uses the default flash loading image on a new SPI flash, does the operation need to write to the entire flash?
flash programming through .jic generally only writes the memory range used by your design. It's important to enable compression in programming file converter for the .sof source(s). Also JTAG adapter speed is important. Some third party products with own drivers are using ineffective protocols. Best results are achieved with USB Blaster and USB Blaster II.
Heh, we literally discovered that we were using the USB Blaster Rev Cs and that these are only 6M speed. We don't have the USB Blaster IIs, but are looking to get our hands on them (no one appears to have any). I am also going to try a third party device, but I don't have high hopes for reliability.
The guys who left us these projects were working a little haphazzardly on development units. I am fairly certain that this initial image uses about 12-15MB of the 128MB flash, and then the bulk of the image is clearing out/resetting it.
We are nearing production where programming time is becoming a crucial issue, and if we can cut down on the programming time by only writing what is necessary at this stage, we would like to do that. I am aware that it's best practice to erase the entire flash prior to initial programming, but 190 seconds is too long for production, and if those areas aren't used (or can be erased at a later step than this initial gating program step) we would be better off.
But from your answer it sounds like we should at least try and determine if this image is "playing it safe" and writing an extended image that isn't necessary.
I’m glad that your question has been addressed, I now transition this thread to community support. If you have a new question, feel free to open a new thread to get the support from Intel experts. Otherwise, the community users will continue to help you on this thread. Thank you.