Talk:Building and using Openwince's JTAG Tools

following up on what some of us talked about in irc on March 21, 2008 ...

T.E. was asking about non-paraport options for JTAG ... ideally something that will work with PPC, Mipsel and ARM.

We agreed that it would be a nice thing to use the USB Olimex devices for all three, all we would need are the right software packages to support flashing w/ it. We already know that OOCD works for ARM. OpenWince JTAG Tools was the standard for PPC JTAG access, but it has been dormant in development since 2003. UrJTAG is the next generation of this line and it supports these very adapters. Read the in-source docs for lots of good information.

I configured it for libftdi (no ftd2xx), compiled it, ran it, and configured it for use with the ARM-USB-TINY from Olimex.

root@bitbaker-i686:/usr/src# wget http://superb-west.dl.sourceforge.net/sourceforge/urjtag/urjtag-0.8.tar.gz --18:25:10-- http://superb-west.dl.sourceforge.net/sourceforge/urjtag/urjtag-0.8.tar.gz            => `urjtag-0.8.tar.gz' Resolving superb-west.dl.sourceforge.net... 209.160.59.253 Connecting to superb-west.dl.sourceforge.net|209.160.59.253|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1,161,347 (1.1M) [application/x-gzip] 100%[====================================>] 1,161,347   177.51K/s    ETA 00:00 18:25:18 (171.98 KB/s) - `urjtag-0.8.tar.gz' saved [1161347/1161347] root@bitbaker-i686:/usr/src# tar zxvf urjtag-0.8.tar.gz urjtag-0.8/ urjtag-0.8/m4/ urjtag-0.8/m4/gettext.m4 urjtag-0.8/m4/iconv.m4 ... urjtag-0.8/data/ibm/ppc405ep/ urjtag-0.8/data/ibm/ppc405ep/STEPPINGS urjtag-0.8/data/ibm/ppc405ep/ppc405ep urjtag-0.8/data/ibm/ppc440gx/ urjtag-0.8/data/ibm/ppc440gx/STEPPINGS urjtag-0.8/data/ibm/ppc440gx/ppc440gx urjtag-0.8/data/ibm/PARTS urjtag-0.8/data/intel/ urjtag-0.8/data/intel/ixp425/ urjtag-0.8/data/intel/ixp425/STEPPINGS urjtag-0.8/data/intel/ixp425/ixp425 urjtag-0.8/data/intel/pxa250/ urjtag-0.8/data/intel/pxa250/STEPPINGS urjtag-0.8/data/intel/pxa250/pxa250 urjtag-0.8/data/intel/pxa250/pxa250c0 urjtag-0.8/data/intel/pxa270/ urjtag-0.8/data/intel/pxa270/STEPPINGS ... urjtag-0.8/data/motorola/ urjtag-0.8/data/motorola/mpc8245/ urjtag-0.8/data/motorola/mpc8245/1.2 ... urjtag-0.8/po/POTFILES.in urjtag-0.8/po/urjtag.pot urjtag-0.8/po/stamp-po urjtag-0.8/po/fr.po urjtag-0.8/po/rw.po urjtag-0.8/po/sk.po urjtag-0.8/po/fr.gmo urjtag-0.8/po/rw.gmo urjtag-0.8/po/sk.gmo urjtag-0.8/po/ChangeLog urjtag-0.8/po/LINGUAS root@bitbaker-i686:/usr/src# cd urjtag-0.8 root@bitbaker-i686:/usr/src/urjtag-0.8# ./configure --with-libftdi --with-libusb --without-ftd2xx checking code revision... svn: '.' is not a working copy from ChangeLog: 1067 ... config.status: creating src/jim/Makefile config.status: creating po/Makefile.in config.status: WARNING: po/Makefile.in.in seems to ignore the --datarootdir setting config.status: creating config.h config.status: executing default-1 commands config.status: creating po/POTFILES config.status: creating po/Makefile config.status: executing depfiles commands jtag is now configured for USB cable support   : yes FTDI cable support via libftdi       : yes via libftd2xx     : no   SVF error locations  : no   Build SVF player     : yes Build BSDL subsystem : yes root@bitbaker-i686:/usr/src/urjtag-0.8# make make all-recursive ... root@bitbaker-i686:/usr/src/urjtag-0.8# make install Making install in doc root@bitbaker-i686:/usr/src/urjtag-0.8# jtag UrJTAG 0.8 #1067 Copyright (C) 2002, 2003 ETC s.r.o. Copyright (C) 2007, 2008 Kolja Waschk and the respective authors UrJTAG is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. There is absolutely no warranty for UrJTAG. WARNING: UrJTAG may damage your hardware! Type "quit" to exit, "help" for help. jtag> help cable Usage: cable DRIVER [DRIVER_OPTS] Select JTAG cable type. DRIVER     name of cable DRIVER_OPTS options for the selected cable Type "cable DRIVER help" for info about options for cable DRIVER. List of supported cables: ARCOM        Arcom JTAG Cable ByteBlaster  Altera ByteBlaster/ByteBlaster II/ByteBlasterMV Parallel Port Download Cable UsbBlaster   Altera USB-Blaster Cable FT2232       Generic FTDI FT2232 Cable JTAGkey      Amontec JTAGkey (FT2232) Cable ARM-USB-OCD  Olimex ARM-USB-OCD (FT2232) Cable OOCDLink-s   OOCDLink-s (FT2232) Cable (EXPERIMENTAL) Signalyzer   Xverve DT-USB-ST Signalyzer Tool (FT2232) Cable (EXPERIMENTAL) Turtelizer2  Turtelizer 2 Rev. B (FT2232) Cable (EXPERIMENTAL) USB-to-JTAG-IF USB to JTAG Interface (FT2232) Cable (EXPERIMENTAL) DLC5         Xilinx DLC5 JTAG Parallel Cable III EA253        ETC EA253 JTAG Cable EI012        ETC EI012 JTAG Cable IGLOO        Excelpoint IGLOO JTAG Cable KeithKoep    Keith & Koep JTAG cable Lattice      Lattice Parallel Port JTAG Cable MPCBDM       Mpcbdm JTAG cable TRITON       Ka-Ro TRITON Starterkit II (PXA255/250) JTAG Cable WIGGLER      Macraigor Wiggler JTAG Cable WIGGLER2     Modified (with CPU Reset) WIGGLER JTAG Cable xpc_int      Xilinx Platform Cable USB internal chain xpc_ext      Xilinx Platform Cable USB external chain jtag> detect Error: Cable not configured. Please use 'cable' command first! jtag> cable ARM-USB-OCD ftdi-mpsse 15ba:4 Initializing on FTDI device 15ba:4 jtag> detect IR length: 4 Chain length: 1 Device Id: 00000111100100100110000001000001 (0x0000000007926041) Unknown manufacturer! chain.c(129) Part 0 without active instruction chain.c(160) Part 0 without active instruction chain.c(129) Part 0 without active instruction jtag> print No. Manufacturer             Part                 Stepping Instruction          Register ---   0                                                         (none)               (none) jtag> detectflash detectflash: syntax error! jtag> help initbus Usage: initbus BUSNAME Initialize new bus driver for active part. BUSNAME      Name of the bus List of available buses: au1500    AU1500 BUS Driver via BSR bcm1250   Broadcom BCM1250 compatible bus driver via BSR ejtag     EJTAG compatible bus driver via PrAcc bf533_stamp Blackfin BF533 Stamp board bus driver bf533_ezkit Blackfin BF533 EZKit board bus driver bf537_stamp Blackfin BF537 Stamp board bus driver bf537_ezkit Blackfin BF537 EZ-KIT board bus driver bf561_ezkit Blackfin BF561 EZ-KIT board bus driver ixp425    Intel IXP425 compatible bus driver via BSR lh7a400   Sharp LH7A400 compatible bus driver via BSR (flash access only!) mpc824x   Motorola MPC824x compatible bus driver via BSR mpc5200   Freescale MPC5200 compatible bus driver via BSR ppc440gx_ebc8 IBM PowerPC 440GX 8-bit EBC compatible bus driver via BSR ppc405ep  IBM PowerPC 405EP compatible bus driver via BSR prototype Configurable prototype bus driver via BSR, requires parameters: amsb= alsb= dmsb= dlsb= ncs=|cs= noe=|oe= nwe=|we= [amode=auto|x8|x16|x32] pxa2x0    Intel PXA2x0 compatible bus driver via BSR pxa27x    Intel PXA27x compatible bus driver via BSR s3c4510x  Samsung S3C4510B compatible bus driver via BSR sa1110    Intel SA-1110 compatible bus driver via BSR sh7727    Hitachi SH7727 compatible bus driver via BSR sh7750r   Hitachi SH7750R compatible bus driver via BSR sh7751r   Hitachi SH7751R compatible bus driver via BSR h7202     H7202 compatible bus driver via BSR slsup3    SLS UP3 compatible bus driver via BSR tx4925    Toshiba TX4925 compatible bus driver via BSR jopcyc    JOP.design Cyclone Board compatible bus driver via BSR SHARC_21065L SHARC_21065L compatible bus driver via BSR zefant-xs3 Simple Solutions Zefant-XS3 Board compatible bus driver via BSR jtag> print chain No. Manufacturer             Part                 Stepping Instruction          Register ---   0                                                         (none)               (none) jtag> detect IR length: 4 Chain length: 1 Device Id: 00000111100100100110000001000001 (0x0000000007926041) Unknown manufacturer! chain.c(129) Part 0 without active instruction chain.c(160) Part 0 without active instruction chain.c(129) Part 0 without active instruction jtag> This output is from the LSPro, which is not supported since its Feroceon processor isn't supported. But it seems that the underpinnings of JTAG Tools are still there and it deserves testing on a PPC device. I am not totally sure that it will work with PPC, but it makes sense that it should. It would be nice to see this software or some other Olimex-capable JTAG software work on the LS2, so that we'd have a single reliable modern adapter to use.

Checking into this, it seems that LNI already bundled up a binary for us to use for debricking an LS2. The binary is in the LS2 Developemnt dir,and some background and commands are here http://buffalo.nas-central.org/forums/viewtopic.php?f=14&t=4057&st=0&sk=t&sd=a&sid=8b2f4020e279e4379d6363bdf23ddfc7&start=30 Note that this is using the wiggler clone, but some other evidence suggests that this can be done w/ UrJTAG as well: http://wiki.openwrt.org/OpenWrtDocs/Customizing/Hardware/JTAG_Cable

Here kuroguy talks about getting the LS2 to be debricked w/ HairyDairyMaid http://buffalo.nas-central.org/index.php/Hardware_Hacks_for_the_LS2#JTAG_Installation but he says that OpenWinCE didn't work out. I wonder if the newer version (UrJTAG) would work?

Davy gravy 23:21, 21 March 2008 (CDT)