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

MAX10 Multi Nios2 boot on UFM

Altera_Forum
Honored Contributor II
1,362 Views

Dear all, 

I'm facing a big problem on how to boot a multiprocessor system in the UFM. 

I have three core, they works well when downloading with JTAG. Now I would to boot from the UFM.  

I tried several methods: 

1. Using Quartus convert programming file: 

a. it works well, but it allows me only to download one core per time. Do you know a method to merge the mem_init files? 

2. Nios Flash Programmer: 

a. it doesn't allow to convert sof2flash (the error is always: unrecognized flash memory in SOF command error 3 

b. when I try to convert elf2flash it always fails with command error 8 No CFI table found 

 

thanks in advance for your support. 

Lorenzo
0 Kudos
3 Replies
Altera_Forum
Honored Contributor II
371 Views

I have the same problem with my MAX 10 10M50 chip. sof2flash doesn't work with the latest Quartus release 17.0.2. We can't ask our customers to update the MAX10 FPGA/FW in the field with a JTAG/USB Blaster. It has to be updated from NiosII, therefore sof2flash is needed. 

 

Could any engineers from Intel/Altera comment when sof2flash is supported in Quartus? Is there a workaround? Thanks.
0 Kudos
Altera_Forum
Honored Contributor II
371 Views

 

--- Quote Start ---  

Dear all, 

I'm facing a big problem on how to boot a multiprocessor system in the UFM. 

I have three core, they works well when downloading with JTAG. Now I would to boot from the UFM.  

I tried several methods: 

1. Using Quartus convert programming file: 

a. it works well, but it allows me only to download one core per time. Do you know a method to merge the mem_init files? 

2. Nios Flash Programmer: 

a. it doesn't allow to convert sof2flash (the error is always: unrecognized flash memory in SOF command error 3 

b. when I try to convert elf2flash it always fails with command error 8 No CFI table found 

 

thanks in advance for your support. 

Lorenzo 

--- Quote End ---  

 

 

 

Hi Lollius, 

I had the same problem and I resolved using the software srecord (you can donwload it from http://srecord.sourceforge.net/) through which you can merge two .hex or .flash file. 

Download this software and copy it in a directory you want. 

 

In Qsys you have to boot both cpus from internal flash and give them the correct offset from which they will boot, for example the first cpu boots from internal flash with offset 0x00000000 and the second cpu boots from same internal flash with offset 0x00010000. 

When you compile the NiosII project in Eclipse, you have to generate the .flash file for all cpus in your hardware system (right click on your app project, not bsp project) -> Make Targets -> Build and select mem_init_generate. 

This operation create the cpu_flash.flash file in you project directory. 

Then copy the two file cpu_flash.flash in the same directory where you copied the srec software (obviously rename one of two file) and from command prompt type: 

 

srec_cat -Output_Block_Size 16 your_first_cpu_flash_file.flash your_second_cpu_flash_file.flash -o output_name_file.hex -intel 

 

Then using Convert Programming File as usual (select Internal Configuration, button Options/Boot info... -> UFM source "Load memory file" and select the .hex file you have just created with srec_cat. Select the correct .sof file and generate) you can program all your cpus project with single programming procedure. 

 

 

I hope this method also works fine for you. 

 

 

 

Have a nice day. 

Best regards. 

 

 

Davide (Perryiavo)
0 Kudos
Altera_Forum
Honored Contributor II
371 Views

I'm having the same issue. I'll try your solution out Perry. Thanks for sharing the info.

0 Kudos
Reply