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: 
Adventurer
Adventurer
1,146 Views
Registered: ‎01-26-2017

XSDK can't find download.bit

Jump to solution

Hi,

 

I'm having a strange problem where I try to program my MicroBlaze design onto my board. I program in the usual way, specify bitstream, and .mmi file and .elf, but when it goes through the programming process, it fails when it can't find <filepath>/download.bit.

 

This is unsurprising, because the bitstream generated by my project is called design_1_wrapper.bit. (and when I specify the bitstream in the 'program FPGA' dialogue box, I specify design_1_wrapper.bit.

 

So why is XSDK trying to source a bitstream called download.bit? It says it is missing from my hardware platform folder, which is exactly where my design_1_wrapper.bit is. I tried to work around this by renaming the bitstream file to download.bit but this causes BRAM init to fail. How can I fix this? Can I specify in the elf or something which bitstream to use?

 

Thanks for your time

--- Estimated Development time: 2*Pi*(planned completion date) ---
0 Kudos
1 Solution

Accepted Solutions
Moderator
Moderator
1,125 Views
Registered: ‎09-12-2007

Re: XSDK can't find download.bit

Jump to solution
The boot loader will run in bram. It will take image from flash and put it in ddr, then handover to ddr app.

Your is as you described was that you had sections of linker in DDR. The updatemem can't map to ddr. So it failed.

So, either place all sections in bram, or use the SDK to download, or use a srec boot loader.
11 Replies
Xilinx Employee
Xilinx Employee
1,112 Views
Registered: ‎10-21-2010

Re: XSDK can't find download.bit

Jump to solution

Hi @aaron_holliday

 

SDK tries to create download.bit from <user>.bit and elf. It looks like this is failing, but SDK is ignoring the error and trying to program download.bit. Can you please post the log from updatemem and program FPGA consoles

Adventurer
Adventurer
1,087 Views
Registered: ‎01-26-2017

Re: XSDK can't find download.bit

Jump to solution

Hi @sadanan

 

Sorry for the wait, I have got the program FPGA log here:

 


cmd /C updatemem -force -meminfo \
C:/Users/<FILEPATH>/project1.sdk/design_wrapper_5/design_1_wrapper.mmi \
-bit \
C:/Users/<FILEPATH>/project1.sdk/design_wrapper_5/design_1_wrapper.bit \
-data \
C:\Users\<FILEPATH>\deip_cpu\project1.sdk\tcp_server_7\Debug\tcp_server_7.elf \
-proc design_1_i/microblaze_0 -out \
C:/Users/<FILEPATH>/project1.sdk/design_wrapper_5/download.bit

****** updatemem v2018.1 (64-bit)
**** SW Build 2188600 on Wed Apr 4 18:40:38 MDT 2018
** Copyright 1986-2018 Xilinx, Inc. All Rights Reserved.

source C:/Xilinx3/SDK/2018.1/scripts/updatemem/main.tcl -notrace
CRITICAL WARNING: [memdata-28-246]
ERROR: [Updatemem 57-153] Failed to update the BRAM INIT strings for C:\Users\<FILEPATH>\project1.sdk\tcp_server_7\Debug\tcp_server_7.elf and C:/Users/<FILEPATH>/project1.sdk/design_wrapper_5/design_1_wrapper.mmi.
update_mem: Time (s): cpu = 00:00:08 ; elapsed = 00:00:10 . Memory (MB): peak = 136.016 ; gain = 75.805
ERROR: [Common 17-39] 'update_mem' failed due to earlier errors.

INFO: [Common 17-206] Exiting updatemem at Tue Sep 18 16:15:06 2018...

 

I noticed that in some of the paths, the slashes are sometimes forwards and sometimes backwards. Let me know if you need other logs etc. Thanks for your time

--- Estimated Development time: 2*Pi*(planned completion date) ---
0 Kudos
Xilinx Employee
Xilinx Employee
1,082 Views
Registered: ‎10-21-2010

Re: XSDK can't find download.bit

Jump to solution

Hi @aaron_holliday,

Can you please check if the elf is built to run from BRAM (assign the program sections to BRAM in linker script)?

Adventurer
Adventurer
1,076 Views
Registered: ‎01-26-2017

Re: XSDK can't find download.bit

Jump to solution
Hi @sadanan
I had to program the .text and .bss to ddr4 due to their size. They exceeded my ilmb and dlmb max size. Everything else is in bram. I will double check my linkedr script when I can but I think the program sections were all bram
--- Estimated Development time: 2*Pi*(planned completion date) ---
0 Kudos
Moderator
Moderator
1,068 Views
Registered: ‎09-12-2007

Re: XSDK can't find download.bit

Jump to solution
This is the issue, you have some sections in the.

You will need to remove these sections from the elf, or place all sections in bram

You can use objcopy to remove the section from the elf
Adventurer
Adventurer
1,059 Views
Registered: ‎01-26-2017

Re: XSDK can't find download.bit

Jump to solution
@stephenm so I need to shrink the elf by reducing the source code size? Currently I am using a lwIP example TCP server. Is this usually too big to fit on a board? Or should I just increase my ilmb and dlmb cache sizes? Also I think your message got got cut off in your comment. Thanks for your help
--- Estimated Development time: 2*Pi*(planned completion date) ---
0 Kudos
Moderator
Moderator
1,052 Views
Registered: ‎09-12-2007

Re: XSDK can't find download.bit

Jump to solution
The updatemem tool is used for populating bram, not ddr. This is why this is failing.

Yuou will also unlikely fit an lwip design into bram. So you will need to use the ddr.

For debugging you can use the SDK to download the elf. Going forward, you could use a boot loader to load the elf into try from a flash memory
Highlighted
Adventurer
Adventurer
1,048 Views
Registered: ‎01-26-2017

Re: XSDK can't find download.bit

Jump to solution
@stephenm thanks. Is there a xilinx document for using boot loaders from flash?
--- Estimated Development time: 2*Pi*(planned completion date) ---
0 Kudos
Moderator
Moderator
1,045 Views
Registered: ‎09-12-2007

Re: XSDK can't find download.bit

Jump to solution
There is an are boot loader template in SDK. You can use that. Yhou just need to configure it to point to your flash address

If you Google srec bootloader xilinx. There is a great off by Avnet that you can use
Adventurer
Adventurer
816 Views
Registered: ‎01-26-2017

Re: XSDK can't find download.bit

Jump to solution
@stephenm great thanks for that. Two last questions, will I get issues with DDR if my design uses a MIG and it is also being used to store the bootloader? Also, will I have any issues with mmi not matching elf and design_1.bit being used instead of download.bit? Or is this solely a updatemem issue? Thanks
--- Estimated Development time: 2*Pi*(planned completion date) ---
0 Kudos
Moderator
Moderator
1,126 Views
Registered: ‎09-12-2007

Re: XSDK can't find download.bit

Jump to solution
The boot loader will run in bram. It will take image from flash and put it in ddr, then handover to ddr app.

Your is as you described was that you had sections of linker in DDR. The updatemem can't map to ddr. So it failed.

So, either place all sections in bram, or use the SDK to download, or use a srec boot loader.