Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
Need Forum Guidance? Click here

Search our FPGA Knowledge Articles here.
19335 Discussions

Max 10 RSU (Remote System Update) - Dual Images - Write to CFM

Honored Contributor II

I am looking to test the remote update feature of the Max 10 using the Max 10 Development Board. I want to be able to perform a Remote System Update (RSU) using the Discrete Update method. I have worked through the RSU example using the Nios II processor (AN741: Remote System Upgrade for Max 10 FPGA Devices over UART with the Nios II Processor), however for the situation I need to perform remote updates in the Nios II method is not an option. 



I have been able to succesfully program the device with dual images. For this I have used a simple Platform Designer system (clk, flash, dual_boot IP) to generate HDL files which I have included in a top level HDL file for the project. Next, I intend to test the "fail safe" capability of the Max 10 by corrupting one of the images (image 1), attempting to boot into that image, and checking that the device falls back in to image 0. 



To do this I need to be able to write directly to the CFM on the device. I have been unable to find a method of easily writing in to the CFM. Is this even possible or can the CFM only be written to/read from using the Remote Update circuitry on the device? Are there any examples online of a Discrete RSU system on the Max 10?  



Any help would be much appreciated. 



0 Kudos
3 Replies
Honored Contributor II

You can write to the CFM using the Quartus Programmer, but you need control logic for switching the images. That's why Nios is involved, though you could create a state machine. See these online trainings for details:
Honored Contributor II

I have used the Quartus Programmer to program the device with two images. I now want to try to load in to an image that I know to be corrupt, to see if the device will default to the second (valid) image. The problem is that the Quartus Programmer cannot be used to program the device with a corrupt image. I was hoping to find out if it would be possible to corrupt one of the images by writing some arbitrary data into an arbitrary location within one of the images using logic within the device. 


e.g. Write 20 "FF" values starting at CFM address 0xb9999 when a user push button is pressed 


Then manually change the image to boot from using the CONFIG_SEL pin on the back on the Max 10 and attempt to load into that image using the PLUSE_nCONFIG button. 


I have looked through the training courses for performing a remote update, and have followed the labs for RSU using the Nios II processor. For my purpose using the Nios II is not an option, so I will need to develop some control logic (state machine) to perform the RSY without the Nios II.

Did you ever build this updater in VHDL or Verilog without the Nios II? I am trying to do the same thing.