====== urjtag ======
[[http://urjtag.org/|urjtag]] kann man als JTAG client benutzen um z.B. Xlinx CoolRunner CPLD zu programmieren.
===== Jtag Interface =====
Ich benutze als JTAG Interface den [[ http://shop.embedded-projects.net/index.php?module=artikel&action=artikel&id=14| OpenOCD Adapter von Embedded Projects]] mit FTDI2232 Chip.
===== Schritt für Schritt =====
==== Übersetzen ====
Ich übersetze urjtag selbst, da ich gerne libftd2xx verwende, weil ich damit die besten Erfolge bisher erzielt habe.
- Vorbedingungen installieren (kein Anspruch auf Vollständigkeit): sudo apt-get install build-essential libusb-dev checkinstall
- libftd2xx von [[http://www.ftdichip.com/Drivers/D2XX.htm|FTDI]] [[http://www.ftdichip.com/Drivers/D2XX/Linux/libftd2xx1.1.0.tar.gz | hier ]] herunterladen und dann: sudo cp *.h /usr/include
sudo cp i386/libftd* /usr/lib
sudo ldconfig
- urjtag herunterladen und entpacken: wget "http://sourceforge.net/projects/urjtag/files/urjtag/0.10/urjtag-0.10.tar.bz2/download" -O - | tar -xvj
- Konfigurieren: 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
- Compilieren: make -j5
- Debian Paket erzeugen: sudo checkinstall
- Fertig!
==== Konfiguration für xc2c128-vq100 hinzufügen ====
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 {{:it:linux:urjtag_xc2c128-vq100.tar.gz|}} eingepackt. Diese Datei muss nur noch unter /usr/local/share/urjtag entpackt werden.
==== Bedienung ====
- Mittels sudo jtag
kommt man in die urjtag shell.
- Mit help cable
kann man sich alle unterstützen Adapter anzeigen lassen.
- Für meinen Adapter verwende ich cable ARM-USB-OCD
Connected to libftd2xx driver.
- Die angeschlossenen JTAG Devices kann man sich folglich anzeigen lassen 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.
- Mittels part 0
wählt man das Device aus, welches man manipulieren will.
- Eine SVF-Datei lädt man mittels svf myfile.svf
===== Links =====
* [[http://urjtag.org/]]
* {{:it:linux:urjtag_xc2c128-vq100.tar.gz|}} urjtag config für xc2c128-vq100 (nach /usr/local/share/urjtag entpacken)
* [[ http://shop.embedded-projects.net/index.php?module=artikel&action=artikel&id=14| OpenOCD Adapter von Embedded Projects]]