Commit c641779b authored by Federico Vaga's avatar Federico Vaga

speclib: allow to write FPGA with a given buffer

Signed-off-by: Federico Vaga's avatarFederico Vaga <federico.vaga@cern.ch>
parent 3e282487
......@@ -270,9 +270,20 @@ static char *load_binary_file(const char *filename, size_t *size)
return buf;
}
int spec_load_bitstream(void *card, const char *filename)
int spec_load_bitstream_buffer(void *card, void *buf, size_t size)
{
struct spec_private *p = (struct spec_private *) card;
int rv;
rv = loader_low_level(0, p->bar4, buf, size);
waitdone_low_level(0, p->bar4);
gpiofix_low_level(0, p->bar4);
return rv;
}
int spec_load_bitstream(void *card, const char *filename)
{
char *buf;
size_t size;
int rv;
......@@ -281,9 +292,7 @@ int spec_load_bitstream(void *card, const char *filename)
if(!buf)
return -1;
rv = loader_low_level(0, p->bar4, buf, size);
waitdone_low_level(0, p->bar4);
gpiofix_low_level(0, p->bar4);
rv = spec_load_bitstream_buffer(card, buf, size);
free(buf);
return rv;
......
......@@ -20,6 +20,10 @@ void spec_close(void *card);
Returns 0 on success. */
int spec_load_bitstream(void *card, const char *filename);
/* Load the FPGA bitstram into car [card] from a given buffer [buf]
of size [size] */
int spec_load_bitstream_buffer(void *card, void *buf, size_t size);
/* Loads the WRC LM32 firmware into card [card] from file [filename]. starting at
address [base_addr]. Returns 0 on success.
WARNING: using improper base address/FPGA firmware will freeze the computer. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment