JTAG and QSPI Flash on Alchitry Au

Hi [color=#666666]Charlie,[/color]

[color=#666666]I have much the same topic:[/color]

[color=#666666]I made a design in Vivado and programmed my microblaze with Vitis.[/color]
[color=#666666]I connected the plattform cable via Br-Board direct to the JTAG pins.[/color]
[color=#666666]Therefore i can upload my design and use all online debugging tools
provided by Vintis.[/color]

[color=#666666]However, I found no way to store the design and the program in the spi flash.[/color]

[color=#666666]The used SPI Flash (Microchip SST26VF032B) is not supported by Vivado.
So I can’t use “add Configuration Memory Device” in Vivados Hardware Manager.[/color]

[color=#666666]On the other hand I don’t know how to integrate the programm into the bitstream.[/color]
[color=#666666]With makes the alchtry loader useless to me.[/color]

[color=#666666]Does anybody know, how to bring the design and the program into the spi flash?[/color]

[color=#666666]Thank you,[/color]
[color=#666666]Florian[/color]

[color=#666666]Some month ago I found the solution.[/color]
[color=#666666]It was easier than expected to get the microblaze program into the flash memory.[/color]

In Vitis 2022.2
Xilinx → Programm device
there is an entry mircoblaze_0 and bootloop
klick on bootloop - browse
select the elf file (normaly under \Debug*.elf )
that will create a download.bit file which is located in _ide\bitstream\download.bit

open the Alictry Loader V1.0.0
klick in “Open Bin File”
change Filetyp to “All Files”
open download.bit
click on “Programm”

done :slight_smile:

1 Like

The source code for the command-line loader is directly available at: https://github.com/alchitry/alchitry-loader.
It uses lib USB as a static library in the repo, but you can get the API and source for that too. From there you could see how the loader writes and use a modified version to write your program at the appropriate address above the configuration. A little SPI loader in your FPGA design to pull the instructions over into whatever you are using for memory or cache and you’re golden.

Sorry if that’s not what you want but it’s the only path I can see. Perhaps someone wiser will be able to suggest something else.