Looking for Flash Programming Utility in Linux FrontPanel


I am looking for the flash programming utility documented in the XEM5010-UM. Is this available in the Linux release. I am currently using FrontPanel-3.10.



It’s the FlashLoader sample. Looks like this sample isn’t installed with the Linux version. Probably because we just haven’t ported the application to Linux.

It’s a pretty basic command-line utility, though, so a port shouldn’t be too difficult. We provide the pre-built bitfile in the Windows version.

As my whole work flow is Linux based, I would appreciate the port of this code.


The actual flashloader.exe is not included, and I don’t have a Windows compiler available. Please provide me the flashloader executable as I need to get this project committed to flash.


I’ve am trying to overwrite a bit file I’ve loaded into the flash.

The first time I loaded it, it worked. On subsequent tries, the load does not take.

Is there any other thing I need to consider to ensure that the flash can be updated more than once?



Yes, the FlashLoader runs through and erases sectors before programming them.

The Spartan-6 has a shorter period during which it must detect the sync words in the bitstream. So we’ve added some code to the FlashLoader (not released yet) that detects this and trims the beginning. We have not seen this issue on the Virtex-5, however.

One other note… The FlashLoader only clears 7 sectors. We need to update it to clear more depending on the size of the file.

If you have bitstream compression turned off and are using a XEM5010, you will most certainly need to increase the number of sectors it clears.

These changes are all in the works for the next release.

A key correction I had to make to the flash source (EraseSectors procedure) was to change Sleep (ms) to usleep (us) Is it possible that this change might affect the timing and consequent correct clearing of the sectors?

I am using the XEM5010 and have compression turned off. I don’t think I’ve yet seen the option to compress the bitstream.

Please let me know when new code (or better yet a compiled Linux binary) is available. This is gating some work we have getting XEM5010 moved into a production work flow.



Question: If you think the problem is that I am not clearing enough sectors, can I simply make this change and recompile?

// EraseSectors(xem, 0x0000, 7);

EraseSectors(xem, 0x0000, 14);

or more precisely
EraseSectors(xem, 0x0000, 24); // based on a bit file size that would occupy 24 x 64 bytes.


A page on this device is 256 bytes. A sector is 65,536 (64k) bytes. Yes, you can do this. In fact, our change is just this simple…

i = lN / FLASH_SECTOR_SIZE + 1; EraseSectors(xem, 0x0000, i);

The following changes (new > ) will make the flashloader work with the XEM5010.


< if (i > 50) {

  if (i > MAX_WAIT_LOOP_COUNT) {

< if (k > 50) {

  	if (k > MAX_WAIT_LOOP_COUNT) {

< EraseSectors(xem, 0x0000, 7);

//EraseSectors(xem, 0x0000, 7);
EraseSectors(xem, 0x0000, 28);