I have a Cyclone III (3C16) with a NiosII processor with external RAM and I would like to have remote update functionality. My first goal is to able to switch from safe image to user image for as the FPGA configuration (hardware image) and NiosII executable (software image)... and I cannot get this workign!
I'm able to have a safe and user hardware as wel software image in the EPCS device for my Cyclone III
I'm using the Remote System Update and I'm able to switch from the first hardware image to the second hardware image.
But the problem is that my second hardware image loads the software image of my first hardware image.
So after reading several threads on the forum and AN458, AN429 and AN548 I understand that I need to change the bootloader of the EPCS controller. I should give an offset where the bootloader is going to search for the NiosII software Image.
The content of the EPCS is as follow:
0x00000 hwimage_app1..hex followed by swimage_app1.hex
0x90000 hwimage_app2.hex followed by swimage_app2.hex
I'm not very experienced in assembler... but I tried the file "boot_loader_epcs_bits_sii_siii_ciii.S":
// 1) Open EPCS-device at flash-offset zero.
//
movi r_flash_ptr, 0
and changed it to "movi r_flash_ptr, 0x90000".
Then I compiled these files with the make command in the boot_loader_sources directory, I replaced my EPCS_controller in the SOPC builder, generate the NiosII and recompile the Quartus project.
I also checked the bootloader from Melo_01.. and from his comment in the sources I understood that he is spanish...
Can any one help me to change the bootloader to start my second software image. I think I only need to make a small step...