cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Observer
Observer
420 Views
Registered: ‎09-27-2018

Updatemem (Vivado 2019.2.1) accepts only elf (not mem)

Jump to solution

I'm using updatemem (on Linux) to populate two memory-spaces for two CPUs (LM32).

The first core I'm programming with an ELF file, the second using a MEM file. Then I get this error:

ERROR: [Common 17-69] Command failed: File /.../clb_v2_dom.mem is not a elf file. Incorrect file extension.

Indeed it is not an ELF file. But why does it not accept a .mem file, according to the documentation it should.

Command:

updatemem -meminfo /.../fpga.mmi 
-data /.../wrc.elf -proc lm32_wrpc_memory
-data /.../clb_v2_dom.mem -proc lm32_2nd_memory
-bit /.../fpga.bit -out clbv2dom.bit -force

(Replace long path names with ...)

Any help regarding this would be most helpful.

Cheers,
Vincent

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Moderator
Moderator
355 Views
Registered: ‎10-06-2016

Re: Updatemem (Vivado 2019.2.1) accepts only elf (not mem)

Jump to solution

Hi @vvanbeveren 

The sintax seems to be OK and I would expect it to work, but I'm wondering if it might be a limitation or bug using different data types (ELF and MEM) in a single updatemem command. As a quick test you could split the command in two steps to check if it works:

updatemem -meminfo /.../fpga.mmi  -data /.../wrc.elf -proc lm32_wrpc_memory  -bit /.../fpga.bit -out step1.bit -force
updatemem -meminfo /.../fpga.mmi -data /.../clb_v2_dom.mem -proc lm32_2nd_memory  -bit step1.bit -out clbv2dom.bit -force

Regards


Ibai
Don’t forget to reply, kudo, and accept as solution.

View solution in original post

3 Replies
Highlighted
Moderator
Moderator
356 Views
Registered: ‎10-06-2016

Re: Updatemem (Vivado 2019.2.1) accepts only elf (not mem)

Jump to solution

Hi @vvanbeveren 

The sintax seems to be OK and I would expect it to work, but I'm wondering if it might be a limitation or bug using different data types (ELF and MEM) in a single updatemem command. As a quick test you could split the command in two steps to check if it works:

updatemem -meminfo /.../fpga.mmi  -data /.../wrc.elf -proc lm32_wrpc_memory  -bit /.../fpga.bit -out step1.bit -force
updatemem -meminfo /.../fpga.mmi -data /.../clb_v2_dom.mem -proc lm32_2nd_memory  -bit step1.bit -out clbv2dom.bit -force

Regards


Ibai
Don’t forget to reply, kudo, and accept as solution.

View solution in original post

Highlighted
Moderator
Moderator
335 Views
Registered: ‎09-12-2007

Re: Updatemem (Vivado 2019.2.1) accepts only elf (not mem)

Jump to solution

I see the same (with test 1):

dual_data.PNG

I used the TCL script here to test:

proc test_updatemem {test} {
 if {$test == 1} {
  exec updatemem -debug -force -meminfo design_1_wrapper.mmi -data hello.elf -data test.mem -proc design_1_i/microblaze_0 -proc design_1_i/microblaze_0 -bit design_1_wrapper.bit -out download.bit > dump.txt
 }
 
 if {$test == 2} {
  exec updatemem -debug -force -meminfo design_1_wrapper.mmi -data test.mem -proc design_1_i/microblaze_0 -bit design_1_wrapper.bit -out download.bit > dump.txt
 }
 
 if {$test == 3} {
  exec updatemem -debug -force -meminfo design_1_wrapper.mmi -data hello.elf -proc design_1_i/microblaze_0 -bit design_1_wrapper.bit -out download.bit > dump.txt
 }
 
 if {$test == 4} {
  exec updatemem -meminfo design_1_wrapper.mmi -data hello.elf -proc design_1_i/microblaze_0 -bit design_1_wrapper.bit -out download_int.bit
  exec updatemem -debug -force -meminfo design_1_wrapper.mmi -data test.mem -proc design_1_i/microblaze_0 -bit download_int.bit -out download.bit > dump.txt
 }
}

This is a bug. I will file a CR

As a workaround, as Ibai suggested you can run updatemem twice (test 4 above):

 

Highlighted
Observer
Observer
309 Views
Registered: ‎09-27-2018

Re: Updatemem (Vivado 2019.2.1) accepts only elf (not mem)

Jump to solution

Hi Ibaie,

Sorry, I clicked on the wrong post to accept as a solution. Not sure how to revert. But indeed running it twice works.

Cheers,
Vincent

edit: found it. But thanks stephenm for your insight and tests and reporting the bug.

0 Kudos