cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
7,916 Views
Registered: ‎02-02-2010

Spartan 3A DSP 1800: programming on-board Flash

Jump to solution

Hello Everybody,

When removing power from the development board, the Xilinx intial program alway starts and I have to

download my hardware and software configuration new, each time I provide power to the board.

 

To avoid this permantn re-programming I want to store m yhardware configuration and my software in the Flash.

Additionally I have to use a bootloader to fetch these data from the Flash and get them executed.

 

I know that my development board(Spartan 3A DSP 1800) contains a Flash memory on board and that the Xilinx EDK

(In version 11)  can automatically create a initial bootloader design. I have also already tried to programthe Flash with the FLash Programmer

provided with EDK. But I have got problems to do that. At first I don't extactly know which type of file I have to download(.bit and .elf?).

I know that i have to change my jumber configuration on JP9 while programming to M1 and after a restart of the board to M0 and M2.

 

When I do all this and try to download the files onto the Flash I get this error:

 

 

* Opening image file to be programmed...done.
* Setting up Flashwriter sources for compilation...
* Performing CFI Query on the flash part(s)...
* ERROR: Flashwriter application reported an error: Unable to successfully query target part layout using CFI!
* Flashwriter terminating !
Done!

 

Where does this error come from? What do I have to do to get it working?

 

Thank you for your Help

 

Regina

 

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Visitor
Visitor
9,679 Views
Registered: ‎02-02-2010

Hello,

 

I have solved the problem. I uopdated my EDK design suite from version 11.1 to version 11.5. Noe it is owrking very well.

 

Thank you very much for your help.

 

Regards

Regina

View solution in original post

0 Kudos
8 Replies
Highlighted
Voyager
Voyager
7,894 Views
Registered: ‎10-01-2007

Regina,

 

There are two types of Flash on the 1800A board -- serial Flash (SPI) and parallel Flash (BPI).  Both are capable of configuring the Spartan-3A DSP FPGA and storing application code for MicroBlaze.   The EDK Flashwriter works with the parallel Flash, so I'll assume this is the Flash on which you are working.

 

Although based on EDK 9.2, you may find the following reference design useful.  Go to www.em.avnet.com/spartan3a-dsp --> Support Files & Downloads.  Look for:

   > S3A1800DSP BPI Flash Configuration and Bootloading

 

Have you tested your EMC Flash interface?  The Flashwriter error you are getting would tell me your EMC setup is not correct.

 

If you decide you'd like to look at configuring/bootloading from serial Flash, there is an 11.4 example posted.

   > S3A1800DSP Serial Flash Bitstream Update over Ethernet

 

Bryan

0 Kudos
Highlighted
Visitor
Visitor
7,878 Views
Registered: ‎02-02-2010

Hi Brian,

 

Thank you for your fast reply.


Yes you are right I tried to use the parallel flash. I have already used the reference design you suggested.

But I was not able to generate the .bin file. Now I am able to do that and downloading the hardware configuration works.

Also the other steps mentioned in the reference design work and the Error I have shown you does not occur any more.

 

Anyway, the software does not run. When I download the whole design(hardwarwre and software incl. bootloader) to the RAM I can see the bootloader working on the Hyper terminal and my software is also running. But when I program the Flash with the bootloader design and my software, I can't

see any commands on the hyper terminal. Is there something wrong with the offset, where I program the software?

 

I also tried to program my software to the flash on SDK but this didn't work. A similar error occurs like I have shown in the first post.

 

Regards

Regina

0 Kudos
Highlighted
Voyager
Voyager
7,874 Views
Registered: ‎10-01-2007

Regina,

 

It sounds to me like there is something wrong with your Flash interface.  Have you tried some simple test code to access the Flash to make sure it is connected correctly?  Did you use Base System Builder to generate the Flash interface?  You might try posting your MHS and UCF here.

 

Bryan

0 Kudos
Highlighted
Visitor
Visitor
7,841 Views
Registered: ‎02-02-2010

Hello,

 

I hvae tried to use the Avnet sample application but it was an old version so I just was able to compare this design to mine. Therefore I was not able to use the Flash test application but I will try one of my own.

 

For the hardware configuration I used my design (initially created with BSB) and the added the EMC interface (without BSB).

 

Attached you can find the MHS and the UCF file.

 

Thank you for your help.

 

Regards

Regina

0 Kudos
Highlighted
Visitor
Visitor
7,819 Views
Registered: ‎02-02-2010

Hello Brian,

 

I wand to add that I was able to use the Flash test application from the Avnet reference design. It is running well

and my Flash works correctly.

 

In the mean time I was also able to do a ll the steps in the reference design without any erros occuring. But there is still a problem.

At first I program the Flash with the .elf file of my application(with an offset) and automatically generate a bootloader. Afterwards I update the bitstream

with my bootloader application, generate the .bin file and program this bin file without an offset to the flash.

When this is done two LEDs are blinking in a strange way even when cycling power to the board. I can't imagine where

this does come from.

If I download the bootloader bitstream to the RAM of the board the bootloader is working and finds by application software

and everything is working. Therefore I assume that the offset I use and the bootloader itself is right.

 

Is it wrong when I think that I can program both, the hardware configuration and the software application, into one Flash(in this case the parallel Flash)?

 

Another Question relating to this: Is it possible to use the SPI interface(for a LCD for example) when programming the parallel flash?

 

Thank you very much for your help

 

Regards

Regina

0 Kudos
Highlighted
Voyager
Voyager
7,802 Views
Registered: ‎10-01-2007

Are you storing the ELF or an SREC when you run Flashwriter?  The bootloader generated by the Flashwriter is an SREC interpreter.

 

Make sure the offset is well beyond the end of the bitstream.

 

Putting both the FPGA configuration bitstream and the MicroBlaze application code inside one Flash is perfectly acceptable.

 

The only interface that I have used to program the parallel Flash is the EMC peripheral.

 

Bryan

0 Kudos
Highlighted
Visitor
Visitor
7,777 Views
Registered: ‎02-02-2010

Hello Bryan,

 

I always set the box for automatically generating an srec file out of the .elf file.

My Flash has 16MB and by .bin File I download for hardware configuration at offset 0x00000000 (with bootloader application) is about 1MB big.

The srec file is approximately 500KB big. Therefore I assume that an offset of 0x00F00000 for programming the srec file would be ok.

I also tried to use various offsets( 0x00800000, 0x00080000) but nothing didn't help.

 

Am I completely wrong?

 

Regards

Regina

0 Kudos
Highlighted
Visitor
Visitor
9,680 Views
Registered: ‎02-02-2010

Hello,

 

I have solved the problem. I uopdated my EDK design suite from version 11.1 to version 11.5. Noe it is owrking very well.

 

Thank you very much for your help.

 

Regards

Regina

View solution in original post

0 Kudos