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: 
Visitor rpetras
Visitor
11,997 Views
Registered: ‎09-26-2008

Programming ML507 Platform Flash using iMPACT

Jump to solution

Given that I have a working download.bit file with code that runs in BRAM, how do I program the platform flash on the ML507 board using the impact GUI tools.  I have successfully done this using the onboard SPI flash, but can't seem to get it to work from the Platform Flash.

 

I can build a .mcs file and successfully load it, but obviously I'm missing somthing, because the app does not work.  

 

Is there a step by step procedure somewhere that describes this? 

 

Thanks,

Rich 

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Visitor rpetras
Visitor
10,023 Views
Registered: ‎09-26-2008

Re: Programming ML507 Platform Flash using iMPACT

Jump to solution

Thanks Fernando, that was the key.

 

Here is the procedure that answers the original question:

 

 Programming Platform Flash (xcf32p) on the ML507 using Linux

    * Create a bitstream in XPS.

You should be able to run this download.bit file by loading it to the FPGA directly via the JTAG port. This is explained sufficiently in the ML507 documentation.

    * Be sure to update the etc/bitgen.ut file so that the StartUpClk line is:
          * -g StartUpClk:CCLK (not JTAGCLK)
    * Regenerate the download.bit file (note: you should still be able to download this using JTAG)

Convert Bits to a .mcs file

    * Start iMPACT GUI. Type impact on the command line.
    * Dialog box - The program directory / is not writable .... click OK

    * Select - Create new project
    * Click OK

    * Select - Prepare PROM File
    * Enter PROM File name: test_platform_flash (or whatever)
    * Leave the other defaults
    * Click Next
    * Select - I am using a Xilinx PROM in parallel mode
    * Click Next

    * Select - Select a PROM (bits): xcf, xcf32p[32M]
    * Click Add
    * Click Add
    * Click Next
    * Click Finish

    * Dialog - Add Device
    * Click OK

    * Select the file: implementation/download.bit

    * Dialog - Add Device
    * Click OK
    * Click OK

    * In Available Operations window, double click Generate File
    * If a warning comes up about test_platform_flash_1.mcs does not contain data, click OK
          o This is OK, it just means your data did not fill more than one flash device

Load the Flash

    * Set the address/mode DIP switch to 00010000
    * Click Boundary Scan
    * Right click in the Boundary Scan window to get a menu
    * Select - Initialize Chain

    * Dialog - Assign New Configuration File (This will show up for each device in the chain)
    * Select - test_platform_flash_0.mcs (for the first device)(you might have to go up the directory tree from the implementation directory)
    * Click Open
    * Select - test_platform_flash_1.mcs (for the second device)(or Bypass if you only have one .mcs file)
    * Click Bypass for the rest of the devices

    * Dialog - Device 1 Programming parameters
    * Select verify
    * Select Parallel Mode
    * Click OK

    * Repeat for Device 2 if needed

    * Click on the picture of the device
    * Select Program

    * Repeat for Device 2 if needed

 

 

I hope this helps...

Rich 

12 Replies
Xilinx Employee
Xilinx Employee
11,980 Views
Registered: ‎07-25-2008

Re: Programming ML507 Platform Flash using iMPACT

Jump to solution

Hi Rich,

 

The PROM gets programmed with the *.mcs file correctly, right?

The next thing to check is if the mode pins are set to the correct configuration mode.

Try to set them to "000" (Master Serial Mode, CCLK generated by FPGA).

Press PROG_B or power-cycle the board.

Does the FPGA configure?

 

If not could you read back the status register of the FPGA after the failing configuration from the PROM.

(Impact -->  Debug --> Read Device Status )

 

 

Cheers!

0 Kudos
Visitor rpetras
Visitor
11,976 Views
Registered: ‎09-26-2008

Re: Programming ML507 Platform Flash using iMPACT

Jump to solution

Yes, the PROM gets programmed. 

 

I tried running with mode set to 000.  When I power cycle, the FPGA does not configure.

 

Device status follows:

 

 // *** BATCH CMD : ReadStatusRegister -p 5
Maximum TCK operating frequency for this device chain: 10000000.
Validating chain...
Boundary-scan chain validated successfully.
5: Device Temperature: Current Reading:   44.96 C, Min. Reading:   43.98 C, Max. Reading:   44.96 C
5: VCCINT Supply: Current Reading:   0.999 V, Min. Reading:   0.999 V, Max. Reading:   1.002 V
5: VCCAUX Supply: Current Reading:   2.499 V, Min. Reading:   2.496 V, Max. Reading:   2.499 V
'5': Reading status register contents...
CRC error                                         :         0
Decryptor security set                            :         0
DCM locked                                        :         1
DCI matched                                       :         1
End of startup signal from Startup block          :         0
status of GTS_CFG_B                               :         0
status of GWE                                     :         0
status of GHIGH                                   :         0
value of MODE pin M0                              :         0
value of MODE pin M1                              :         0
Value of MODE pin M2                              :         0
Internal signal indicates when housecleaning is completed:         1
Value driver in from INIT pad                     :         1
Internal signal indicates that chip is configured :         0
Value of DONE pin                                 :         0
Indicates when ID value written does not match chip ID:         0
Decryptor error Signal                            :         0
System Monitor Over-Temperature Alarm             :         0
startup_state[18] CFG startup state machine       :         0
startup_state[19] CFG startup state machine       :         0
startup_state[20] CFG startup state machine       :         0
E-fuse program voltage available                  :         0
SPI Flash Type[22] Select                         :         1
SPI Flash Type[23] Select                         :         1
SPI Flash Type[24] Select                         :         1
CFG bus width auto detection result               :         0
CFG bus width auto detection result               :         0
Reserved                                          :         0
BPI address wrap around error                     :         0
IPROG pulsed                                      :         0
read back crc error                               :         0
Indicates that efuse logic is busy                :         0

 

Thanks,

Rich 

0 Kudos
Xilinx Employee
Xilinx Employee
11,968 Views
Registered: ‎07-25-2008

Re: Programming ML507 Platform Flash using iMPACT

Jump to solution

Hi Rich,

 

Nothing is really happening during configuration:

 
End of startup signal from Startup block          :         0
status of GTS_CFG_B                               :         0
status of GWE                                     :         0
status of GHIGH                                   :         0

 

GHIGH is '0', that means the data is not completely loaded.

There is very likely something wrong with the PlatformFlash or the way they are programmed.

Do you use design revisioning? If so, is the right revision selected?

 

Could you follow the steps in the ML507 Getting Startet Tutorial, Page 29?

It uses the Program_ML505_PlatFlash.bat batch file to program the PROMs.

If that works we can have a look at the impact flow.

 

Cheers!

 

 

 

 

 

 

0 Kudos
Visitor rpetras
Visitor
11,960 Views
Registered: ‎09-26-2008

Re: Programming ML507 Platform Flash using iMPACT

Jump to solution

>Could you follow the steps in the ML507 Getting Startet Tutorial, Page 29?

>It uses the Program_ML505_PlatFlash.bat batch file to program the PROMs.

>If that works we can have a look at the impact flow.

 

This works with the preloaded my_plat_flash.bit, but not with my download.bit file.  My download.bit works with a direct JTAG load.  Is there another step that needs to be done to prepare it? 

 

Thanks,

Rich 

 

 

0 Kudos
Xilinx Employee
Xilinx Employee
11,949 Views
Registered: ‎07-25-2008

Re: Programming ML507 Platform Flash using iMPACT

Jump to solution

Hi Rich,

 

That is strange...

How did you prepare your PROM file?

Could you paste the command line you used in here?

 

Did you set the revision select pins correctly on your board?

 

 

Cheers!

 

 

0 Kudos
Visitor rpetras
Visitor
11,933 Views
Registered: ‎09-26-2008

Re: Programming ML507 Platform Flash using iMPACT

Jump to solution

This is waht I tried to load my download.bit file.  This download.bit works with a JTAG download. 

 

  promgen -w -p mcs -c FF -o ml507_production_platflash -ver 0 xrom.bit -ver 1 download.bit -x xcf32p xcf32p
  impact -batch ./ml507_plat_flash.cmd

 

I can run the xrom.bit as selection 000 but not download.bit as selection 001.

 

Then I try this: 

  promgen -w -p mcs -c FF -o ml507_production_platflash -ver 0 xrom.bit -ver 1 my_plat_flash.bit -x xcf32p xcf32p
  impact -batch ./ml507_plat_flash.cmd

 

Here both work as selection 000 or 001 respectively.

 

Thanks,

Rich 

0 Kudos
Xilinx Employee
Xilinx Employee
11,907 Views
Registered: ‎07-25-2008

Re: Programming ML507 Platform Flash using iMPACT

Jump to solution

Hi Rich,

 

Do you rename your download.bit file to my_pla_flash.bit?

Do you see the FPGA run the correct design then?

If not, are my_plat_flash.bit and xrom.bit different files?

 

Can you try to download your download.bit file to -ver 0?

 

 

Cheers!

 

 

0 Kudos
Xilinx Employee
Xilinx Employee
11,880 Views
Registered: ‎01-03-2008

Re: Programming ML507 Platform Flash using iMPACT

Jump to solution

Did you select CCLK as the startup clock when generating your BIT file?

 

-Fernando

0 Kudos
Visitor rpetras
Visitor
11,875 Views
Registered: ‎09-26-2008

Re: Programming ML507 Platform Flash using iMPACT

Jump to solution

> Did you select CCLK as the startup clock when generating your BIT file?

 

I generated the .bit file using xps.  Where is this option set?  I don't remember explicitly setting it.

 

Thanks,

Rich 

0 Kudos
Xilinx Employee
Xilinx Employee
7,451 Views
Registered: ‎01-03-2008

Re: Programming ML507 Platform Flash using iMPACT

Jump to solution

There is a Bitgen Options file listed under Project Files in the Project tab within XPS.  It is located in your project directory under etc/bitgen.ut.  Open the file and look for the -g StartUpClk: line.  If it reads "-g StartUpClk:JTAGCLK" change it to "-g StartUpClk:CCLK" and generate a new bitstream.

 

-Fernando

Highlighted
Visitor rpetras
Visitor
10,024 Views
Registered: ‎09-26-2008

Re: Programming ML507 Platform Flash using iMPACT

Jump to solution

Thanks Fernando, that was the key.

 

Here is the procedure that answers the original question:

 

 Programming Platform Flash (xcf32p) on the ML507 using Linux

    * Create a bitstream in XPS.

You should be able to run this download.bit file by loading it to the FPGA directly via the JTAG port. This is explained sufficiently in the ML507 documentation.

    * Be sure to update the etc/bitgen.ut file so that the StartUpClk line is:
          * -g StartUpClk:CCLK (not JTAGCLK)
    * Regenerate the download.bit file (note: you should still be able to download this using JTAG)

Convert Bits to a .mcs file

    * Start iMPACT GUI. Type impact on the command line.
    * Dialog box - The program directory / is not writable .... click OK

    * Select - Create new project
    * Click OK

    * Select - Prepare PROM File
    * Enter PROM File name: test_platform_flash (or whatever)
    * Leave the other defaults
    * Click Next
    * Select - I am using a Xilinx PROM in parallel mode
    * Click Next

    * Select - Select a PROM (bits): xcf, xcf32p[32M]
    * Click Add
    * Click Add
    * Click Next
    * Click Finish

    * Dialog - Add Device
    * Click OK

    * Select the file: implementation/download.bit

    * Dialog - Add Device
    * Click OK
    * Click OK

    * In Available Operations window, double click Generate File
    * If a warning comes up about test_platform_flash_1.mcs does not contain data, click OK
          o This is OK, it just means your data did not fill more than one flash device

Load the Flash

    * Set the address/mode DIP switch to 00010000
    * Click Boundary Scan
    * Right click in the Boundary Scan window to get a menu
    * Select - Initialize Chain

    * Dialog - Assign New Configuration File (This will show up for each device in the chain)
    * Select - test_platform_flash_0.mcs (for the first device)(you might have to go up the directory tree from the implementation directory)
    * Click Open
    * Select - test_platform_flash_1.mcs (for the second device)(or Bypass if you only have one .mcs file)
    * Click Bypass for the rest of the devices

    * Dialog - Device 1 Programming parameters
    * Select verify
    * Select Parallel Mode
    * Click OK

    * Repeat for Device 2 if needed

    * Click on the picture of the device
    * Select Program

    * Repeat for Device 2 if needed

 

 

I hope this helps...

Rich 

Observer kadionik
Observer
5,582 Views
Registered: ‎06-02-2008

Re: Programming ML507 Platform Flash using iMPACT

Jump to solution

Hi all,

 

In command lines, for a bit file named system.bit :

 

$ promgen -w -p mcs -c FF -o system -ver 0 system.bit -x xcf32p xcf32p $ impact -batch program_prom.cmd with program_prom.cmd: setMode -bs setCable -p auto identify setAttribute -position 1 -attr devicePartName -value "xcf32p" setAttribute -position 1 -attr configFileName -value system_0.mcs Erase -p 1 Program -p 1 -v -parallel -ver 0 customercode:0 -master -internalClk -clkFreq 20 -defaultVersion 0 Quit

 

 Pat.

 

0 Kudos