I just recently got the Arty A7 100T dev board. I have been working through the tutorials. I have been developing on FPGAs for a while but this is my first attempt at using the IP Integrator and the Microblaze architecture from Xilinx. I have been working through the guides posted on the Digilent Resources page for the Arty A7. The one I am currently stuck on is this: https://reference.digilentinc.com/learn/programmable-logic/tutorials/htsspisf/start.
When I get to the end to put the "Hello World" and "Bootloader" .bin file into the SPI it gets programmed but it doesn't appear to operate. I have validated the "Hello World" program is working in DDR3 by running it baremetal as "debug" from SDK with the FPGA programmed. I believe the issue is that when I right to the SPI Flash, SDK is wiping the whole SPI and not just the section of memory I am using. So I am wiping it, putting hello world on, wiping again, and then flashing the bootloader with FPGA bit file, which wipes out the hello world, leaving nothing to boot. I have looked all over SDK for settings to not wipe the entire SPI but can't seem to find any. I have verified the bootloader program is small enough as a .elf to fit into the Microblaze local memory, and it is assigned in the script to use the local memory. The entire download.bit flashing at 0x0 is only a 1 Mb, which is small enough to not clash with the user code space at Flash location 0x003D0900, which is where I am placing the hello world program.
Thanks for the assistance in troubleshooting this issue. I eventually want to move on to using embedded Linux from the SD Card pmod, but want to make sure all this is working and I have confidence in it before I move onto pmod devices and using external storage.
Question
smokingenius
Greetings Forums,
I just recently got the Arty A7 100T dev board. I have been working through the tutorials. I have been developing on FPGAs for a while but this is my first attempt at using the IP Integrator and the Microblaze architecture from Xilinx. I have been working through the guides posted on the Digilent Resources page for the Arty A7. The one I am currently stuck on is this: https://reference.digilentinc.com/learn/programmable-logic/tutorials/htsspisf/start.
When I get to the end to put the "Hello World" and "Bootloader" .bin file into the SPI it gets programmed but it doesn't appear to operate. I have validated the "Hello World" program is working in DDR3 by running it baremetal as "debug" from SDK with the FPGA programmed. I believe the issue is that when I right to the SPI Flash, SDK is wiping the whole SPI and not just the section of memory I am using. So I am wiping it, putting hello world on, wiping again, and then flashing the bootloader with FPGA bit file, which wipes out the hello world, leaving nothing to boot. I have looked all over SDK for settings to not wipe the entire SPI but can't seem to find any. I have verified the bootloader program is small enough as a .elf to fit into the Microblaze local memory, and it is assigned in the script to use the local memory. The entire download.bit flashing at 0x0 is only a 1 Mb, which is small enough to not clash with the user code space at Flash location 0x003D0900, which is where I am placing the hello world program.
Thanks for the assistance in troubleshooting this issue. I eventually want to move on to using embedded Linux from the SD Card pmod, but want to make sure all this is working and I have confidence in it before I move onto pmod devices and using external storage.
Regards.
Link to comment
Share on other sites
4 answers to this question
Recommended Posts
Archived
This topic is now archived and is closed to further replies.