[Andrew] is trying to buckle down and hammer out his PhD project but was surprised by the sorry state of the configuration options for his FPGA/ARM dev board. Using JTAG was painfully slow, so he studied the datasheet to see if there was another way. It turns out the Xilinx FPGA he’s using does have a slave serial mode so he came up with a way to push configuration from the ARM to the FPGA serially.
Four of the connects he needed were already mapped to PortC pins on the AT91SAM9260 ARM System on a Chip. He ended up using the EN_GSM pin on the FPGA, since there is no GSM module on this board; connecting it to the microcontroller with a piece of wire. Now he can SSH into the ARM processor, grabbing information on the FPGA from /dev/fpga0. When it comes time to program, it’s as easy as using the cat command on the binary file and redirecting the output to the same hook.
Error establishing a database connection
Ha ! now THIS is had material. Can’t wait for the site to go up ! nifty kernel modules ahead !
Since the site is down…
Below is the Google Cache of main page
http://bit.ly/uNOi1s
Hackaday DDoS ;/)
Hi HAD team, could You please make this info accesible, unless, Andrew’s work was completely confidential of course. Thank You.
@vostok, if this isn’t released, take a look at the u-boot sources for something similar. The interface is pretty straight forward and it wouldn’t take much to hack it into a kernel driver if that’s what you wanted.
Thanks geezus.
so its a kernel driver pushing configs using PS mode transparently (to the user)? very clean and friendly solution, few hours to implement it and then you can forget about fpga for the rest of the development process.
cache http://necromant.ath.cx.nyud.net/wp/2011/11/18/configuring-a-xilinx-fpga-from-arm/
I’ve always wished for, and never knew existed, tagged structure initialization until I saw this screenshot! Very cool! Unfortunately, it’s only part of C99 and not yet part of C++…
in the cached google page you can find the code…
http://webcache.googleusercontent.com/search?q=cache:srOwA1dt_o8J:necromant.ath.cx/wp/2011/11/18/configuring-a-xilinx-fpga-from-arm/+&cd=2&hl=en&ct=clnk
This is a great idea. I worked on a project once where something similar was done using the parallel loading mode with the parallel port on an x86 SOM-ETX board and a Virtex FPGA. We wrote a driver and used cat to copy FPGA files to /dev/fpga very quickly.
Nice, also waiting the website to come up. I am planning to store configurations on SD card, and use atmega to dump it to FPGA. This way there can be multiple configurations and FPGA can ‘order’ different configuration from atmega. I am also planning to attach USB (FT232) to FPGA, so updates can normally go USB->FPGA->atmega->SD card. But in case of bad configuration, SD card can programmed directly in USB-SD card adapter.
The site is still down. Curious if anyone got lucky yet. I am interested in the details to figure out how could rs-232 could actually be faster than, say a decent jtag programmer, or anything for that matter.
“~280kbyte bitstream takes about 6 seconds” is faster than plugging in JTAG and typing command into the shell
Site should be back online now, sorry guys. I sent that as a patch to lkml, so it’s avaliable there as well.
There it is: https://lkml.org/lkml/2011/11/19/119
Link works now..
Oh, and DO use the lkml patch. It has some typos fixed and a little bit of documentation to help you out.
Still down. All sites that are listed – even the caches.