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.
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.
Shortcut cable connecting connector JP5 and connector JP7 must be present on COMBO6X board as described by the pictures below.
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:
- Program the PCI bridge firmware using Xilinx JTAG cable and Xilinx ISE (see the next section).
- 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
- Start Xilinx
- Select Accessories -> Impact
- Discard project chooser
- Choose Boundary-scan mode
- 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):
- Choose Assign New Configuration - select MCS file according to the selected chip
- 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


