cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
tyski
Observer
Observer
3,131 Views
Registered: ‎01-24-2010

BPI flash programming w/ Spartan-3A DSP 1800 dev board

Jump to solution

Preliminarys:

- Spartan-3A DSP 1800 development board

- ISE 11.4

- MicroBlaze w/ 16kB local RAM

- 128MB external DDR2 RAM

- 16MB BPI flash

 

I'm trying to use the "Program Flash Memory" feature within SDK. My SREC file size is about 1MB and I'm putting it at a 2MB offset within the 16MB external parallel flash (so that it sits well above the FPGA bitstream that resides at the bottom). When I use the local RAM as a scratch space, the programming of the flash fails (for unknown reasons). When I read back what was programmed, only about 5kB or so is valid, then the rest is blank (i.e. all ones). When I use the external 128MB DDR2 as scratch, the programming works just fine.

 

I'm guessing this has to do with how much of the SREC is buffered before writing within the scratch space. With the DDR2, I'm guessing the entire thing is buffered. But with the 16kB local RAM, it obviously needs to be written in chunks. These chunks are likely what provide the percentage output within the XMD console because with the DDR2, it eventually says 100% done without any intermediary messages.

 

I'm guessing there is a bug somewhere either with the flashwriter.tcl script or the flash writing code that runs on the MicroBlaze, probably in the buffering logic. Is this true and is it something that's been fixed either in 11.5 or 12.1? Or am I alone in encountering this issue?

 

Tyrel

 

0 Kudos
1 Solution

Accepted Solutions
xiaofeip_dup
Xilinx Employee
Xilinx Employee
3,898 Views
Registered: ‎08-07-2007

Hi Tyrel,

 

This issue is documented here, http://www.xilinx.com/support/answers/35694.htm.

 

-Felix

 

 

View solution in original post

0 Kudos
2 Replies
xiaofeip_dup
Xilinx Employee
Xilinx Employee
3,899 Views
Registered: ‎08-07-2007

Hi Tyrel,

 

This issue is documented here, http://www.xilinx.com/support/answers/35694.htm.

 

-Felix

 

 

View solution in original post

0 Kudos
tyski
Observer
Observer
3,050 Views
Registered: ‎01-24-2010

I'm not sure that it is 100% related to what I was seeing. When using the BRAM as the scratch, mine would always complete the programming process--steadily counting from 0% to 100% in like 3% increments or so in the XMD console. But when I did a raw read of the contents of the flash memory, only about 5kB or so was actually written--the rest was erased. This naturally caused the SREC boot loader to fail.

 

Either way, I have since implemented my own "image upload" process over a TCP/IP connection, so this no longer directly affects me.

 

Thanks for the answer though!

Tyrel

 

0 Kudos