I have a simple MicroBlaze system with an AXI QSPI device.
I have exported to SDK, and created an SREC bootloader app.
However, the bootloader app fails.
How can I fix this?
There are known issue with the xilisf library in SDK for Artix devices.
To address this, please download the attached zip file and follow the instructions below.
The zip file contains the following folder structure:
userrepo -> xilisf_v5_2
Step 1: Add the repository to SDK Local Repository
Go to Xilinx Tools -> Repositories.
Under Local Repositories, select New, and point to the userrepo that is attached to this Answer Record.
Select Rescan Repositories, Apply, and OK to continue.
Note: The local repository needs to point to the directory that contains the xilisf_v5_2 folder.
Step 2: Create SPI bootloader application
To create the application, go to File -> New -> Application Project.
Name the bootloader, then select Next to continue.
Select SREC SPI Bootloader.
Select Finish to continue.
In the newly created bootloader app, open the blconfig.h file and change the default offset to suit your needs.
For example, if you want to program the application at an offset of 0x0060000, then the value of FLASH_IMAGE_BASEADDR in this bootloader will be 0x00600000:
Step 3: Update the BSP to use the updated version of xilisf
Right click on the BSP and select Board Support Package Settings.
Make sure that that the version of the xilisf is version 5.2 (this is the one that we added in step 1):
The memory device info needs to be passed to the xilifs library (Overview -> standalone -> xilifs)
Build application (Project -> Build all)
Step 4: Create User Application
This is the application that will be copied into memory and executed by the bootloader.
For this example, the Hello World application is created.
File -> New -> Application Project.
Name the application. Select Next to continue.
Select the Hello World application template.
Select Finish to continue.
Link all sections into DDR.
To do this, right click on the newly created application, and select Generate Linker Script.
Place all sections in DDR:
Step 5: Generate Bitstream with BRAM initialized with bootloader.
In SDK, Program the bitstream (Xilinx Tools -> Program FPGA):
Select the bootloader ELF (created in step 2) under ELF/MEM File to Initialize in block RAM, and select Program to continue:
This will run update_mem, and will output a download.bit file.
Step 6: Program Flash
Next, The SDK Program Flash Utility will be used to program the user application (Hello World) to Flash.
To open this, go to Xilinx Tools -> Program Flash.
Here, the offset is the same as the offset used in the blconfig in step 2.
Select Program to continue:
Next, the SDK Program Flash Utility will be used again, this time to program the bitstream initialized with the bootloader in BRAM.
|Name||File Size||File Type|