urjtag kann man als JTAG client benutzen um z.B. Xlinx CoolRunner CPLD zu programmieren.
Ich benutze als JTAG Interface den OpenOCD Adapter von Embedded Projects mit FTDI2232 Chip.
Ich übersetze urjtag selbst, da ich gerne libftd2xx verwende, weil ich damit die besten Erfolge bisher erzielt habe.
sudo apt-get install build-essential libusb-dev checkinstall
wget "http://sourceforge.net/projects/urjtag/files/urjtag/0.10/urjtag-0.10.tar.bz2/download" -O - | tar -xvj
cd urjtag-0.10 ./configure ... jtag is now configured for Detected libusb : yes Detected libftdi : no Detected libftd2xx : yes Detected inpout32 : no Build SVF player : yes Build BSDL subsystem : yes Bus drivers : au1500 avr32 bcm1250 bf526_ezkit bf527_ezkit bf533_stamp bf533_ezkit bf537_stamp bf537_ezkit bf538f_ezkit bf548_ezkit bf561_ezkit bscoach ejtag ejtag_dma fjmem ixp425 jopcyc h7202 lh7a400 mpc5200 mpc824x ppc405ep ppc440gx_ebc8 prototype pxa2x0 pxa27x s3c4510 sa1110 sh7727 sh7750r sh7751r sharc_21065L slsup3 tx4925 zefant_xs3 Cable drivers : arcom byteblaster dlc5 ea253 ei012 ft2232 igloo jlink keithkoep lattice mpcbdm triton usbblaster wiggler xpc Lowlevel drivers : direct ftd2xx ppdev
make -j5
sudo checkinstall
Standartmäßig beinhaltet urjtag keine Konfiguration für den Xilinx xc2c128-vq100.
Diese Konfiguration kann man jedoch aus der BSDL für den Baustein mittels „bsdl2jtag“ erzeugen. Dieses Tool ist bei urjtag dabei.
Die so erzeugte Datei muss in der Ordnerstruktur von urjtag unter /usr/local/share/urjtag eingepflegt werden.
Damit man das nicht jedes mal wieder neu lernen muss, habe ich mal alles in urjtag_xc2c128-vq100.tar.gz eingepackt. Diese Datei muss nur noch unter /usr/local/share/urjtag entpackt werden.
sudo jtag
kommt man in die urjtag shell.
help cable
kann man sich alle unterstützen Adapter anzeigen lassen.
cable ARM-USB-OCD Connected to libftd2xx driver.
jtag> detect IR length: 8 Chain length: 1 Device Id: 00010110110110001010000010010011 (0x0000000016D8A093) Manufacturer: Xilinx Part(0): XC2C128-VQ100 Stepping: 0 Filename: /usr/local/share/urjtag/xilinx/xc2c128-vq100/xc2c128-vq100 Data register 'ISC_DEFAULT' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined jtag>
Wurde manufacturer, part und filename erkannt, dann ist alles i.O.
part 0
wählt man das Device aus, welches man manipulieren will.
svf myfile.svf