Jump to content
  • 0

ARTY - bootloader only if I press PROG


Lorenzo

Question

Hi,

I have done a project for ARTY board which uses a bootloader to run my software application following this tutorial:

How To Store Your SDK Project in SPI Flash

My problem is that it works only after I press the PROG botton. So, after I connect the power, the FPGA PL get programmed (I see LED blinking correctly), but it seems that the bootloader does not. Only after I press PROG it does.

 

What should I do to avoid pressing PROG at the beginning?

 

Thanks,

Lorenzo

 

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

Dear JColvin,

thanks for your answer.

I am not sure I completely understand your answer (I also guess a part is missing).

What surprises me is that, when I connect the power to the board, it doesn't start the bootloader automatically and I need to press the PROG botton.

This is a problem because, in case of power failure, the system will not restart running automatically and I will have to press the PROG botton again.

Is it normal?

 

Thanks,

Lorenzo 

Link to comment
Share on other sites

Hi @Lorenzo,

I apologize. The other bit that evidently did not make it into the post, was the that you would need to have jumper JP1 loaded so that the Arty loads the program from flash memory.

My guess is that the bootloader has not been created or loaded properly; I am taking a look into getting you some accurate steps to take since when I went through the same tutorial, I encountered the same issue that you did.

Thanks,
JColvin

Link to comment
Share on other sites

Thanks @JColvin!

Waiting for your answer.

I am also wondering if it might be a problem related to the hardware I have implemented in my PL. In the tutorial I mentioned before, it only specifies:

"Before you start; this guide assumes that you already have a Microblaze system built complete with Quad SPI, External Memory, and Uart cores, and that you have the appropriate QSpi mode jumper setting. This tutorial takes place in SDK"

 

In my project, I have added the Quad SPI and Uart, but I am not sure of what is the "External Memory". Maybe the MIG for the DDR?

Should I change other settings in the "generate bitstream"? I actually did as described here (in paragraph 8.3.5) :

https://www.avnet.com/opasdata/d120001/medias/docus/178/UG-AES-A7MB-7A35T-G-Arty-SREC-Bootloader-VIV2015-2-V1.pdf

Thanks,

Best

Lorenzo

 

JColvin.url

Link to comment
Share on other sites

Hi @Lorenzo,

Most projects on the Arty that use SDK (and hence MicroBlaze) tend to need DDR memory (and the MIG to control it) since the local BRAM is too small to run the application. This is the point of the SPI SREC bootloader, to pull the application out from QSPI and to run it on the DDR. The bootloader itself will be run on BRAM (provided that has been made small enough to actually fit on BRAM since it is too large with the default SDK settings). This is described a bit more throughout section 9.3 in the tutorial you linked. There is also the bit of making sure the the bootloader in QSPI doesn't overlap with the actual application also in QSPI (otherwise the application won't work since it's been partially overwritten).

I haven't gotten to look at the other setting just yet for the generate bitstream, but I will let you know. I believe the steps listed section 8.3.5 should be fine though.

Thanks,
JColvin

Link to comment
Share on other sites

Hi JColvin,

I am working with Arty S7-50, and is using v2019.1 and v2018.2 to build the MicroBlaze with Bootloader. Both versions have same problem that BootLoader locks up upon power up. It works fine and starts the application when Prog button is depressed. Also, when I depress the reset button, it kills the application. Why is that?

The work around for now is to add a few seconds delay at the beginning of bootloader before it accesses the QSPI flash. But this only works with v2019.1

 

On Arty S7-50, is it true that is has 256KM BRAM? If my application can fit in BRAM, I will not use Bootloader since I cannot get it to work reliably.

Thanks

Phil

 

 

 

Link to comment
Share on other sites

Hi @Phil.C,

I apologize for the delay. The Arty S7 has 337.5 KB (2700 Kb total as per Table 2 of the 7 Series Overview datasheet from Xilinx) so if your application project fits within that space, then I would recommend using that rather than the bootloader to keep things simple, though that isn't always the case for MicroBlaze applications.

I am working creating my own sdk project with a bootloader so I can let you know more conclusively of my experience.

Thanks,
JColvin

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...