Inhaltsverzeichnis

urjtag

urjtag kann man als JTAG client benutzen um z.B. Xlinx CoolRunner CPLD zu programmieren.

Jtag Interface

Ich benutze als JTAG Interface den 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.

  1. Vorbedingungen installieren (kein Anspruch auf Vollständigkeit):
    sudo apt-get install build-essential libusb-dev checkinstall
  2. libftd2xx von FTDI hier herunterladen und dann:
    sudo cp *.h /usr/include
    sudo cp i386/libftd* /usr/lib
    sudo ldconfig
  3. urjtag herunterladen und entpacken:
    wget "http://sourceforge.net/projects/urjtag/files/urjtag/0.10/urjtag-0.10.tar.bz2/download" -O - | tar -xvj
  4. 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
  1. Compilieren:
     make -j5
  2. Debian Paket erzeugen:
    sudo checkinstall
  3. 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 urjtag_xc2c128-vq100.tar.gz eingepackt. Diese Datei muss nur noch unter /usr/local/share/urjtag entpackt werden.

Bedienung

  1. Mittels
    sudo jtag

    kommt man in die urjtag shell.

  2. Mit
    help cable

    kann man sich alle unterstützen Adapter anzeigen lassen.

  3. Für meinen Adapter verwende ich
    cable ARM-USB-OCD
    Connected to libftd2xx driver.
  4. 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.

  5. Mittels
    part 0

    wählt man das Device aus, welches man manipulieren will.

  6. Eine SVF-Datei lädt man mittels
    svf myfile.svf