All Flash memory programming is done with the Spartan (T2). From T2 firmware v6 onward, the flash memory is organized as follows:

0x000000 header
0x100000 Spartan "golden" backup
0x200000 Spartan
0x400000 Virtex

See AMC13Firmware page for current firmware releases.

NOTE; earlier versions of the spartan firmware (pre v6) use address 0x0 for the Spartan. These modules can be reloaded without a cable by writing v6 to 0x0, powercycling to configure from flash, loading the flash according to the table above, and finally powercycling to get the current configuration.

Programming using Python Tools

First, please see the AMC13PythonSoftware page and be sure you have the latest version installed.

Be sure the MCS file for the version you want to program is in the directory amc13_python_2012-xx-xx/firmware_amc13. Note that the most recent firmware is included with each python software release, so you only have to worry about this if you have a special version.

Change to the directory amc13_python_2012-xx-xx/src_amc13.

Execute the command python and enter the serial number of your AMC13.

Use options 4 and 5 to program the Spartan and Virtex flash images.

Programming using HCAL xDAQ C++ Tool

The flash programming may be verified against the mcs files (which must be locally available) with !AMC13Tool.exe (C++ HCAL environment only) with the following commands:

  • vfh (verify flash header)
  • vbs (verify backup spartan)
  • vs (verify spartan)
  • vv (verify virtex)

The flash may be programmed (mcs files must be locally available) with AMC13Tool with the following commands:

  • PFH (Program Flash Header)
  • PBS (Program Backup Spartan)
  • PS (Program Spartan)
  • PV (Program Virtex)
As of 26may2012, an AMC13Tool exists in python with the same commands.

The FPGAs (both Spartan and Virtex) may be configured from the flash contents by issuing the software command in AMC13Tool:

  • L (Load)
This command writes 0x100 into address 0x0 of the Spartan. The C++ command is:
  • amc13.writeAddress(amc13.spartan,0x0, 0x100)

The firmware versions of the Spartand and Virtex may be read with AMC13Tool with the command:

  • fv
This command reads address 0x0 of the Spartan and 0x0 of the Virtex:
  • amc13.readAddress(amc13.spartan,0x0)
  • amc13.readAddress(amc13.virtex,0x0)
The upper two bytes contain the AMC13 serial number and the lower two bytes contain the firmware version number.

-- JimRohlf - 26 May 2012

Edit | Attach | Watch | Print version | History: r23 | r6 < r5 < r4 < r3 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r4 - 10 Aug 2012 - EricHazen
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback