cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Scholar
Scholar
12,483 Views
Registered: ‎10-07-2011

[Memdata 28-123] Elf file hierarchy association might be incorrect

Hi folks,

 

I'm using Vivado 2015.3 on Win7-64. The project I'm working on has been migrated from 2015.1 and was working fine. Now, Synthesis is issueing the critical warning below:

 

[Memdata 28-123] Elf file hierarchy association might be incorrect. Re-do the processor instance to ELF file association and re-open the design. To associate the ELF file, use the Tools->Associate ELF Files menu, or set the scoping properties on the .elf file using the Tcl console.
[Vivado 12-4381] Could not update the BRAM init strings. Check your elf files and their property settings.

 

I run "Tools->Associate ELF Files..." from Vivado and it shows that the <mb_bootloop_le.elf> file is linked to my processor instance. That's what I want... Just a bootloop.

 

My BMM file is as follow:

 

WORKFLOW_OPERATION simulation,dialog;

DEFINE_MEMORY_TYPE microblaze_0_local_memory_lmb_bram_MEM_DEVICE [0x00020000] 32;

ADDRESS_MAP microblaze_0 MICROBLAZE-LE 100 microblaze_0
   ADDRESS_SPACE microblaze_0_local_memory_lmb_bram_ADDR_SPACE microblaze_0_local_memory_lmb_bram_MEM_DEVICE  [0x00000000:0x0001FFFF] microblaze_0_local_memory/dlmb_bram_if_cntlr
     BUS_BLOCK
      microblaze_0_local_memory_lmb_bram_BUS_BLK [31:0] INPUT = "PlatformCore_lmb_bram_0.mem";
     END_BUS_BLOCK;
   END_ADDRESS_SPACE;
END_ADDRESS_MAP;

 

I found AR #56179 discussing a similar issue. I did give a try to the AR suggestions, using the fully implemented design. I got:

 

get_property MEMDATA.ADDR_MAP_CELLS [get_files -of [current_fileset] mb_bootloop_le.elf]
WARNING: [Common 17-599] Property 'MEMDATA.ADDR_MAP_CELLS' is deprecated for object type 'file'. The MEMDATA.ADDR_MAP_CELLS property has been deprecated and will be removed in a future release. Please use the SCOPED_TO_REF and SCOPED_TO_CELLS properties..

 

So, I did verify that the SCOPED_TO_REF and SCOPED_TO_CELLS properties were valid, and they are!

 

list_property [get_files -of [current_fileset] mb_bootloop_le.elf]
CLASS
CORE_CONTAINER
FILE_TYPE
IS_AVAILABLE
IS_ENABLED
IS_GENERATED
NAME
NEEDS_REFRESH
PARENT_COMPOSITE_FILE
PATH_MODE
SCOPED_TO_CELLS                   <<<<<<<<<<<<<<<<<<<<<<
SCOPED_TO_REF                       <<<<<<<<<<<<<<<<<<<<<<
USED_IN
USED_IN_IMPLEMENTATION
USED_IN_SIMULATION

 

By the way, the above command also confirms that the <mb_bootloop_le.elf> file is a valid ELF file. It's in the active Vivado fileset. So, looking at the value of both SCOPED_TO_REF and SCOPED_TO_CELLS properties didn't return the expected result.

 

get_property SCOPED_TO_REF [get_files -of [current_fileset] mb_bootloop_le.elf]
>> Returned NOTHING

 

get_property SCOPED_TO_CELLS [get_files -of [current_fileset] mb_bootloop_le.elf]
>> Returned NOTHING

 

What are the expected value for these properties? The ELF file? Both properties or anyone?

 

I did check the actual content of the Microblaze BRAM blocks and I can see that they are not initialized.

 

get_property INIT_01 [get_cells U6/U1/microblaze_0_local_memory/lmb_bram/U0/inst_blk_mem_gen/gnative_mem_map_bmg.native_mem_map_blk_mem_gen/valid.cstr/ramloop[*].ram.r/prim_noinit.ram/DEVICE_7SERIES.WITH_BMM_INFO.TRUE_DP.SIMPLE_PRIM36.TDP_SP36_NO_ECC_ATTR.ram]
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000
256'h0000000000000000000000000000000000000000000000000000000000000000

 

I'm somewhat stuck. The AR is saying to use data2mem from ISE... but I don't have ISE installed.

 

I also found AR #63847 and proceeded with the suggested workaround. I have:

 

set_param memdata.enableMCSinIPI 1
set_property SCOPED_TO_REF PlatformCore [get_files *.bmm]
set_property SCOPED_TO_CELLS {microblaze_0} [get_files *.bmm]

 

Implementation is going through, but the issue remains.

 

I noticed, however, that I don't have a _bd.bmm file. Does that matter?

 

get_files *.bmm
W:/EGP0031/Sources/BD/PlatformCore/PlatformCore.bmm

 

How can I tell Vivado to link the bootloop ELF file correctly?

 

Cheers,

 

Claude

 

 

 

0 Kudos