Programming over Fibre

From MCEWiki
Revision as of 16:28, 3 December 2010 by Mandana (talk | contribs) (Remote Configuration Software)

Remote Firmware Update (RFU), aka Remote Configuration is the ability to reprogram the MCE via the fibre-optic interface. This feature was implemented in February 2010.

User's Guide

MCE Hardware

To enable Remote Configuration, we need to give the Clock Card FPGA access to the JTAG chain:

  • Turn off MCE power
  • On the Clock Card, flip the "BB_EN" DIP switch on SW1:P1 to OPEN
    • Note that with this DIP switch setting, you can not program the FPGA(sof) from the front panel connector (USB_Blaster) anymore.
    • With this DIP switch setting, if CC firmware is pre-5.0.7, you can not access the JTAG chain from the front panel connector (USB_Blaster) anymore. So you need to update your Factory Configuration device on CC first (using the on-board CC JTAG connector).
  • Turn on MCE power

MCE Firmware

The MCE firmware is updated in two steps. First, the factory configuration device is programmed from the on-board header. Second, the application configuration device are modified on all the cards. Note that the factory and application configuration devices on the Clock Card should both be loaded with 5.0.7+ firmware to avoid loading incompatible firmware versions. Clock Card firmware descriptions are available here: Clock Card (CC). Procedure:

  • Configure the Clock Card factory configuration device with this .pof file:
  • Configure the Clock Card application configuration device with the same .pof:
    • Clock Card: cc_v05000007_14may2010.pof

Remote Configuration Software

Make sure mce_jam is installed. This is normally installed under /usr/mce/bin. If not, then you need to update your mas and mce_jam will be automatically installed. If you rather not upgrade mas, then just checkout the code under mas/applications/mce_jam, make it and copy it to the mas install directory.

The read_idcode.jam file is included in SVN as a test script to help you determine whether you have set up the system correctly.

mce_jam -u -v -f8000000 -aread_idcode read_idcode.jam                     // For Querying ID Codes

If you can run the read_idcode script, then you are ready to re-configure FPGA's, EPC16's and EPCS64's. For these devices, you will need to generate .jam files that are specifically suited to your JTAG chain's topology. You will need Quartus II software to do this. Instructions on generating .jam files are here: MCE Programming File Conversions. If you do not have access to Quartus II software, send the output of the read_idcode.jam script to UBC, and configuration .jam files can be generated for you.

mce_jam -u -v -f800000 -aprogram -dDO_VERIFY=0 cc_xfpga_rc_pof.jam        // For Programming EPC16's
mce_jam -u -v -f8000000 -aconfigure cc_xfpga_rc_sof.jam                   // For Configuring FPGA's

Note that programming an EPCS64 is a two-step process:

mce_jam -u -v -f8000000 -aconfigure cc_rcd_jic.jam                        // For Programming EPCS64's (Step 1 of 2)
mce_jam -u -v -f100000 -aprogram -dDO_VERIFY=0 cc_rcd_jic.jam             // For Programming EPCS64's (Step 2 of 2)

Footnotes

Generating .JAM Files for Remote Update

Porting Remote Configuration Sofware to DAS

The following C-code will need to be ported to DAS to enable Remote Configuration. You will need to convert the MCE WB and RB commands in the code to use DAS libraries and compile the code with the included Makefile:

Development Notes