Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20754 Discussions

Remote software update via UART

Honored Contributor II

i have problem, which i can't resolved. I set system configuration according to AN730.  

I chose Option 2:Nios II processor application copiedfrom UFM to RAM using boot copier 



I want to use Dual configuration mode and i have then 512 kb to software. CFM0 and CFM1 changing and upgrading is easy. I can add new image and trigger to it. I have problem with software.  


I want to have 2 software images. First as a small program(in UFM1), which receives .hex from UART and copies it to UFM2. I realized it by IOWR_32DIRECT(BASE, OFFSET, DATA). Data is copied with successful result.  


I have questions that what with boot copier. It is automatically added to .hex file, when i use "Make Target ->Build->mem_init_generate " ? Or i must add it first? 


I read many posts and documentations but i don't find a good answer. 

I try 3 options: 

1. I make 2 hex file with different software. One hex file(with program that copies .hex to UFM2) was added to .sof file via Quartus File Converter and programmed. Now via UART I send hex file and write it to UFM2, then I used a assembly jump instruction to start addres of UFM2. Result : Restart to program 1 (UFM1) 

2. I have the same situation like above, but now i try to write .hex to UFM1 and then restart a board.  

Result: Program not started( no boot copier ?) 

3. I saw that in 1 topic, someone use "boot_loader_cfi.srec" as a boot copier for program. I try to add it with "elf2flash" function. I add this boot copier to both hex, but still doesnt work. This boot copier is for nios 2 classic version. I have nios2 second gen. Maybe that is a problem. 


Can someone help me?
0 Kudos
0 Replies