UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Visitor bjskilloatk
Visitor
1,063 Views
Registered: ‎08-17-2016

Can't associate ELF file to MicroBlaze processor in Tandem with Field Updates tcl script or initialize BRAM using updatemem

Hi,
 
I'm currently using the DMA Subsystem for PCIe IP core and I would like to associate an ELF file for a Tandem with Field Updates design.  I have already successfully implemented and test this design using the Tandem (a.k.a. Tandem PCIe / TPCIe) configuration method which included associating an ELF file with the MicroBlaze processor that is used in this design.

I have also successfully converted this TPCIe design into a Tandem with Field Updates design architecture which included creating an "app module" that has been separated from the PCIe IP core and was synthesized out of context (OOC).  The design_field_updates tcl scripts (design_field_updates.tcl, update_ver1_impl.tcl and generate_bitstreams.tcl) have been successfully been used to generate all the necessary .bit, .mcs and .prm files required for this design. 

However, each time I load the ver1_tandem2.bit file using MCAP utility, the software that is in the ELF file apparently doesn't get loaded and get executed on the MicroBlaze processor.  This MicroBlaze processor has been instantiated in the "app_module" of the Tandem with Field Updates "app_module" and has been synthesized as an out-of-context module with Vivado per the Tandem with Field Updates design flow.
 
I have referenced the Vivado Expert Series Blog article "Managing MicroBlaze Subsystem or DDR Controllers in Update Region of a Tandem with Field Updates Design" (https://forums.xilinx.com/t5/Vivado-Expert-Series-Blog/Managing-MicroBlaze-Subsystem-or-DDR-Controllers-in-Update/ba-p/699984) and have followed the example listed in the attached article_example.zip file but that method didn't work.

I added the following lines to my update_ver1_impl.tcl script just after the "app_module" checkpoint that was generated from the out-of-context synthesis and before opt_design is called:
   set elffile [add_file <path where .elf file is stored>]
   set_property SCOPED_TO_REF app_module_top $elffile
   set_property SCOPED_TO_CELLS { <hierarchy path to cell where MicroBlaze processor is instantiated in the design>/sys_mb } $elffile

These messages are processed without an error in the script but I never see the message that indicates the BRAM init strings have been generated from the ELF file (INFO:  Memdata 28-144] Successfully populated the BRAM INIT strings from the following elf files:  <path to location of ELF file>)
 
I have also attempted to use the Vivado write_mem_info and SDK updatemem utilities to insert the ELF file data into an existing Tandem with Field Updates ver1_tandem2.bit file but that method also didn't work.
 
I would prefer to have the ELF file automatically be associated with the MicroBlaze processor from commands in the update_ver1_impl.tcl script but at this point I would use any method that properly adds the ELF data the BRAM init strings.  What am I doing wrong to prevent this from happening?
 
Any help would be appreciated.  I look forward to your response.
 
- Brad

0 Kudos
2 Replies
Moderator
Moderator
949 Views
Registered: ‎09-12-2007

Re: Can't associate ELF file to MicroBlaze processor in Tandem with Field Updates tcl script or initialize BRAM using updatemem

I believe that the elf and the STR and STC properties must be set prior to packaging the IP

https://www.xilinx.com/support/answers/67083.html
0 Kudos
Visitor sgrime
Visitor
659 Views
Registered: ‎09-11-2018

Re: Can't associate ELF file to MicroBlaze processor in Tandem with Field Updates tcl script or initialize BRAM using updatemem

Hello, can the original poster reply with whether there was ever a successful conclusion to this?  I'm running into the same issue in 2018.2.

Thanks,

Stuart

0 Kudos