UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Newbie retroclinic
Newbie
4,517 Views
Registered: ‎05-22-2009

Multiboot with XC3S50AN problems

Hi folks.

 

Okay, I have 2 configuration files that work properly on their own, however, I'm trying to impliment them so that in the main file, when a button is pressed, it causes the FPGA to load the second image. Should be easy....

 

The main file has the Multiboot trigger from the sample files from Xilinx implimented, and when I press the button, it does indeed reset the FPGA, but then it just hangs and doesn't complete the reload. I have set up the "next_config_addr:010000", and also tried 020000 as suggested in the documentation, but the second image does not load. I've used iMPACT to generate a .mcs file with the two bitstreams in, had the error message regarding the file size being too big, which the online help says I should set "power of 2" to on to get rid of that message.

 

If I set "next_config_addr:000000", then it continuously tries, and sucessfully reloads the first configuration, so I know that part of it is working.

 

What am I doing wrong please? Any suggestions?

 

Thx, Mark.

0 Kudos
5 Replies
Newbie retroclinic
Newbie
4,511 Views
Registered: ‎05-22-2009

Re: Multiboot with XC3S50AN problems

To follow up with more info....

 

I have used promgen from the command line, as per AR31964 (and others) as so:

 

c:\xilinx\12.3\ise_ds\ise\bin\nt\promgen -w -p mcs -c FF -o c:\x\superco_multiboot -spi -u 0 d:\xilinx\superco_issue1_bootloader\bootloader.bit -u 10000 d:\xilinx\superco_6502i_issue1\mainschem.bit

This produces a .prm file as so:

 

PROMGEN: Xilinx Prom Generator M.70d
Copyright (c) 1995-2010 Xilinx, Inc.  All rights reserved.

promgen -w -p mcs -c FF -o c:\x\superco_multiboot -spi -u 0 d:\xilinx\superco_issue1_bootloader\bootloader.bit -u 10000 d:\xilinx\superco_6502i_issue1\mainschem.bit

PROM c:\x\superco_multiboot.prm map: Sat Nov 13 21:19:56 2010

Calculating PROM checksum with fill value ff

Format        Mcs86 (32-bit)
Size          128K
PROM start    0000:0000
PROM end      0001:ffff
PROM checksum 005fef86

        Addr1        Addr2                     Date File(s)
    0000:0000    0000:d5ad     Nov 13 21:19:45 2010 d:/xilinx/superco_issue1_bootloader/bootloader.bit
    0001:0000    0001:d5ad     Nov 13 20:02:43 2010 d:/xilinx/superco_6502i_issue1/mainschem.bit

 

as expected. In the first .bit file, bootloader, I set the programming file process properties, "next_config_addr" to 0x00010000. This doesn't work. I've tried to at 0x00020000, due to what is suggested in the spi access guide, but that doesn't work either.

 

Thx, Mark.

0 Kudos
Newbie dharmon
Newbie
4,411 Views
Registered: ‎12-16-2010

Re: Multiboot with XC3S50AN problems

I had this same problem and was able to resolve it by setting the address to 0x00020000 in bitgen and 0x10800 in promgen. A read command from the internal spi flash with the address set to 0x20000 returns the byte 0x10800 bytes from the beginning of the array due to the 264 byte pages. 

0 Kudos
Visitor suzero
Visitor
4,236 Views
Registered: ‎12-10-2010

Re: Multiboot with XC3S50AN problems

I was also suffering because of this issue. However if you read

 

http://www.xilinx.com/products/boards/s3astarter/files/s3ask_atmel_spi_flash_programmer.pdf

 

especially page 10 and 11 it is written there how to calculate values for the memory locations in the form of 2's power page structure and in the form of default 528 bytes/pages structure. dharmon also answered through this structures. x10800 is in the form of 2's power, x20000 is in the form of default 528 bytes/pages. As the reference designs, the second bitfile starts at xC0000 adress (but this is in the form of 528bytes/ pages and you enter this value in bitgen)  on the other hand you should enter the value of x0C0000 in the form of 2's power (it equals x63000) in prom gen.

 

One note:

At the end of page 11, it is written 34157910 =053664B however it should be 34157910 =05364B (one of the 6's is extra). Be careful about it.

0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
4,228 Views
Registered: ‎07-30-2007

Re: Multiboot with XC3S50AN problems

Right, PROMGen is going to need the absolute offset into the file as an address.  So, you need to multiply the bytes per page times the number of pages for your upper address. 

 

 

0 Kudos
Newbie magz901
Newbie
4,200 Views
Registered: ‎03-23-2011

Re: Multiboot with XC3S50AN problems

Hi,

 

I'm pretty much novice when it comes to FPGA. I'm trying to follow the instructions found in the "Spartan-3 Generation Configuration User Guide" (UG332) but I can not seem to find the multiboot option for XC3S50AN in Impact when I select the "create PROM file" option. Can someone shed some light on this?

 

Thanks!

 

Mags

0 Kudos