Cesnet Liberouter
  • Projects
  • Liberouter
  • Scampi
  • FlowMon
  • NIC
  • NIFIC
  • IDS
  • NetCOPE
  • VHDL design
  • System software
  • Testing
  • Formal verification
  • Netopeer
  • Documents
  • Our hardware
  • Card Availability
  • Our partners
 

Upgrading PCI Bridge Firmware on COMBO6X cards

Author: Miroslav Vadkerti
Contact: thrix@libeoruter.org
Date: 20.7.2007

Introduction

This document is a guide for upgrading PCI bridge firmware on COMBO6X cards. Old firmware can have compatibility issues with newer designs. It is recommended to keep the firmware up-to-date. You need to install pci-bridge package to get all the necessary tool for upgrade. The PCI bridge firmware version can be viewed using csid -s command and should look like this:

PCI brver: c610.04.05 (2007/03/29 19:01)

The version is specified by two numbers (e.g. 04.05). The new firmware can be found after default package installation at /usr/local/mcs/chips/combo6x/pci_contr/. The firmware consists of these files (example for 04_05)::

combo6x.svf   xc18v04.mcs   xc18v512.mcs

There are two possibilities of upgrade depending on the type of the programming cable. The SVF files are used if upgrading using Liberouter's "programming shortcut cable" and the SVF tool. The MCS files are used if upgrading using Xilinx JTAG cable and Xilinx ISE software.

Requirements on jumper settings

Both upgrade options require these jumper settings on COMBO6X board for correct functionality:

jumper  J1 - short
jumpers J0, J2, J3 - open

Important connectors and jumpers on COMBO6X card

Connectors JP4 and JP7 are in parallel connection. They share the JTAG signals TDO, TDI, TMS, TCK and TMSP.

Important jumpers and connectors on COMBO6X board

Upgrading with Liberouter's "programming shortcut cable" and SVF tool

For this upgrade you will need a shortcut cable showed on the picture below and installed the Liberouter's PCI bridge package which contains the SVF tool.

Liberouter's programming shortcut cable

Shortcut cable connecting connector JP5 and connector JP7 must be present on COMBO6X board as described by the pictures below.

COMBO6X card with connected "programming shortcut cable"

SVF tool

SVF tool is a part of all Liberouter installation packages. It is used for programming PROMs which store configuration of Xilinx FPGA's on COMBO6X cards. The programming data is read from Xilinx SVF (see [SVF]) file generated by Xilinx iMPACT Software.

Program is indeed a file parser and interpreter. It uses the libtap library to communicate with TAP controller in JTAG compliant devices. SVF file contains commands which specify the programming sequence and also the data, which should be shifted into the JTAG device.

SVF program has one necessary parameter - the input file. All other parameters are optional. The default device with TAP connector is COMBO6X device /dev/combosix/0. The program needs also access to devices in /dev directory. This may require root privileges.

Examples of usage

% svf -f combo6x_rev1.svf
  .. program PROM(s) through TAP connector connected
     to default device /dev/combosix/0, be verbose

% svf -d /dev/combosix/1 -f combo6x_rev1.svf   .. program PROM(s) through TAP
                                                  connector at /dev/combosix/1

The programming may take several minutes to finish. The tool shows a progress bar for information about the programming progress. Don't kill the tool while programming is in progress. The PCI bridge firmware must be correct otherwise the card won't be detected by the computer at next start (no COMBO card in lspci listing).

Post installation steps

It is necessary to shutdown and power on the machine after the upgrade of the PCI bridge firmware (reboot is not enough). As root run the following command:

# shutdown -h now

What to do when the card "dies" after corrupted programming

If the programming using Liberouter's shortcut cable failed and you restarted your workstation your COMBO6X card is not detected by the system. You can't use SVF tool, because it uses the card for access to the programming chip. You have two possibilities to enable your card:

  1. Program the PCI bridge firmware using Xilinx JTAG cable and Xilinx ISE (see the next section).
  2. Build a custom LPT cable (Xilinx DCL5 Type3) and use SVF tool

For more information about construction of a Xilinx DCL5 Type3 cable see [PAR]. The cable should be connected to the board according to this scheme:

Xilinx DCL5 Type3                             JP4
     +---+                                   +---+
     |    \                                  | : |
     |     ----- TMS ------------------TMSP--- 7 |
     |     ----- TCK ------------------------- 8 |
     |     ----- TDI ------------------------- 9 |
     |     ----- TDO ------------------------- 10|
     |     ----- GND ------------------------- 12|
     |    /                                  | : |
     +---+                                   +---+

Then use SVF tool with the parallel port connected to COMBO6X board (/dev/parport/0 - LPT1 0x378; /dev/parport/1 - LPT2 0x278):

# svf -d /dev/parport/0 -f combo6x_rev1.svf -v

After the programming shutdown and restart the computer and the card should be detected.

Upgrade Xilinx JTAG cable and Xilinx ISE software

For this upgrade you will need a Xilinx JTAG cable ("Platform Cable USB" or "Parallel Cable IV") and Xilinx ISE software installed on your workstation.

Connecting Xilinx JTAG cable to COMBO6X board

The JTAG signals are available at connector JP7. The signals consist of TMSP, TCK, TDI and TDO pins. To these pins attach the Xilinx programming cable. For connection a "High-Performance Ribbon Cable" (with 14pin connector at both sides) or a "Flying Wire Adapter" can be used.

Upgrading firmware using Xilinx ISE

  1. Start Xilinx
  2. Select Accessories -> Impact
  3. Discard project chooser
  4. Choose Boundary-scan mode
  5. Choose File -> Initialize Chain

The software should now auto-detect all available chips on the JTAG chain. For programming options use right click on desired chips (xc18v04 and xc18v512):

  1. Choose Assign New Configuration - select MCS file according to the selected chip
  2. Choose Program - program assigned configuration to the chip

Post installation steps

It is necessary to shutdown and power on the machine after the upgrade of the PCI bridge firmware (reboot is not enough). As root run the following command:

# shutdown -h now

References

[SVF]Xilinx SVF format specification, http://www.xilinx.com/bvdocs/appnotes/xapp503.pdf
[TREP]JTAG programming device for FPGA configuration EEPROMs http://www.cesnet.cz/doc/techzpravy/2006/jtag/
[PAR]Xilinx DCL Type3 cable http://wiki.openwrt.org/OpenWrtDocs/Customizing/Hardware/JTAG_Cable
Main Page About Liberouter Team Mailing list SVN Contacts