Yes, the Remote Update Block works fine in Quartus 14.1
I use the new Altera Serial Flash Loader whereby is much easier to handle Factory and Application images
for FPGA configuration and Nios firmware. AN-736 (2015.05.26) is strongly recommended!
My testsystem is a Cyclone 5 (5CEFA7) custom hardware with a EPCQ256 (Micron N25Q256A, x4 mode) serial flash device.
With QSYS I created a factory and an application design (ru_sopc.jpg). Within the systems are the Serial Flash Loader and the Remopte Update block.
For read and write parameters of the Remopte Update block I use an avalon slave (custom hardware). Factory and application design distinguish
in nios reset vector and system ID (not necessary). (reset_vect.jpg)
factory reset vector offset 0x410000
application reset vector offset 0x810000
Furthermore two nios eclipse projects whith different BSPs are needed. In the linker script tab of BSP editor you will see the appropriate reset addresses.
(offset is added to the base address of SFLs avl_mem). (ru_bsp.jpg)
In the factory project I set the start address for application image (writing 0x570000 to page select parameter at "100") and the AnF Bit to "1" (param "101")
Reconfiguration starts with '1' at reconfig input of Remote Update block. (refer Altera Remote Update IP Core User Guide, 2015.06.15)
The application project read the system ID and the reconfiguration trigger parameter to verify that the right image was booted.
Compile the projects and generate the .hex files with Make Targets -> Build -> mem_init_generate (refer AN-736).
After creating and fit/compile the projects a .jic file for programming the EPCQ is needed. With Quartus Convert Programming Files utility you can put
both images into one file. After adding the flash loader device (5CEFA7) you put the factory .sof in Page_0, start address 0x0 and add the factory .hex file
(<SFL-qsys-name>.hex). Create a new SOF page_1 at and choose the start address of application FPGA configuration, in my case 0x570000.
Then add the .hex file for application image. The resulting .map file is:
BLOCK START ADDRESS END ADDRESS
Page_0 0x00000000 0x0026CB73
epcs_controller.hex 0x00410000 0x00421F73
Page_1 0x00570000 0x007DB248
epcs_controller.hex 0x00810000 0x00821F0F
(jic_for_C5_remote.jpg)
After programming the .jic and powercycling the hardware I get following messages at my RS232 terminal:
Nios2 Factory Image with SYS ID 0xFF
Boot Status 0x0
AnF Bit 0x0
Reconfig Address 0x570000
Nios2 Application Image with SYS ID 0xAA
Boot Status 0x4
AnF Bit 0x1
First the factory image is loaded from EPCQ then reconfiguration with application image is done.
Best regards
Jens