Jump to content
  • 0

Arty A7 - Bootloader does not load


TomF

Question

Hello,

I am currently working on a Project involving a Microblaze core on an Arty A7 board. Everything works fine by programming the board nonpermantly from Vivado and SDK. I am using 2018.3 and even tried 2019.1 today.

However, there is a problem with the startup of the firmware, when I upload it to the flash memory following the "How To Store Your SDK Project in SPI Flash" tutorial.

First of all, when I power the device, the FPGA is initialized which I can see by an LED lighting up as it is hardwired to a constant 1. "Done" LED also lights up. The problem is, that the bootloader does not load anything. When I debug the bootloader by printing something over  UART (verbose mode), there is nothing. When I run the system debugger from SDK with the bootloader code, the bootloader starts and sucessfully reads the flash from Address 0xC00000 and my application starts on the microblaze. 

What am I doing wrong and what can I do to find the problem?

 

Best regards

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

Hi @TomF,

I would suggest to start with a fresh project.

Here is an older tutorial that should help you get a basic microblaze project going.

When the tutorial has you add the uart lite ip core add the QSPI flash ip. Add an additional 50 MHz clock on the clocking wizard and connect it to the ext_spi_clk on the qspi flash ip core. 

In project setting in bitstream select .bin then run implementation. When it is finished open the implementation.

Then follow the How To Store Your SDK Project in SPI Flash tutorial.

best regards,

Jon 

Link to comment
Share on other sites

Hi @TomF,

Are you using the Digilent boards files?

When doing block automation in vivado I would suggest using 32KB for local and 16 KB for cache. 

Please attach a screen shot of your block design.

What frequency are you giving the ext_spi_clk on the QSPI Flash IP Core?

best regards,

Jon

Link to comment
Share on other sites

Hi jpeyron,

 

thank you for your reply. The digilent board files are installed and I used the board macro to initialize the qspi for the flash. I have chosen 16kb for Cache and 32bkb local memory, as described in "Getting started with microblaze servers".

I am using the same clock for ext_spi_clk as for the AXI (s_axi_aclk) which is the same for all AXI blocks running on 83.333MHz. I also tried a separate clock from clk_wiiz with 66.333MHz which didn't work either.

Please see attached my block diagram. On the lower left there is other logic concerning the PL and some AXI GPIO connecting to it.

iNBMEkG.png

 

 

Link to comment
Share on other sites

Your example works fine on my hardware. The only things that I was able to find to be different from my design is the bitstream settings. They are also different from the avnet manual: https://www.avnet.com/opasdata/d120001/medias/docus/178/UG-AES-A7MB-7A35T-G_Arty_OOB_GPIO_demo_V1.pdf

After adjusting the bitstream settings to be the same as yours, Vivado throws an error message: "invalid stof argument". 

I am stuck at this point

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...