From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 In-Reply-To: References: <06fed67ccccb147c7e18240205ff0ca0@quintile.net> <1b5a7cf45e8c570c416d1d08b607bb35@swcp.com> Date: Wed, 27 Oct 2010 00:05:46 +0200 Message-ID: From: Gorka Guardiola To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: Re: [9fans] JTAG Topicbox-Message-UUID: 6e68f81a-ead6-11e9-9d60-3106f5b1d025 On Tue, Oct 26, 2010 at 9:28 PM, EBo wrote: > > I just ran into the following FAQ and info that might be of help: > > a JTAG FAQ: http://hri.sourceforge.net/tools/jtag_faq_org.html > > interesting detail: > > TAG specification is in Std IEEE 1149.1 (costs about $100). I don't > have it. Please search at internet for some JTAG related documents. > This is good: http://www-s.ti.com/sc/psheets/ssya002c/ssya002c.pdf > > also: > > You just have to write software to go through the states of JTAG FSM (her= e > is the state diagram of this FSM: > http://www.inaccessnetworks.com/projects/ianjtag/jtag-intro/jtag-state-ma= chine-large.png). > TCK and TMS are used to go through the states of FSM. And TDI is used to > serially send through this interface your commands and data to JTAG > controller on the IC (in your case, to the ARM uC) and read back reply > through the TDO pin. The only problem is that some companies do not open = all > details about available custom JTAG commands (JTAG standard defines only = 2 > necessary commands: EXTEST and SAMPLE and some optional commmands like > INTEST, BIST and others). For example, Texas Instruments do not give an > access to the description of commands that are used for In-Circuit Debugg= ing > of their TMS DSPs. Instead of, they sell this JTAG ICD with simple softwa= re > for about 1000$!!! Nice business - such a price for 4 wires and some I/O > ICs! ;-) > > Hope this helps. > > =A0EBo -- > > The way I think this works: USB-MPSSE-JTAG-uP The USB part is a simple protocol which I already have figured out and is in the driver's .h. http://yosemitefoothills.com/Electronics/FTDI_Chip_Commands.html I am now looking into the MPSSE details which is a kind of programmable controller for the JTAG which has high level commands so that operations do not take a round trip through USB. For this the best docs I found are the openocd code and some documents referred in it: http://www.ftdichip.com/Documents/AppNotes/AN2232C-01_MPSSE_Cmnd.pdf http://openocd.berlios.de/web/ The openocd code is my main reference because it does work on linux. If I have to I'll resort to sniffing the USB connection in linux, though I = hope it does not come to that. After the MPSSE (or at the same time) I have to figure the JTAG part for which probably EBo's references are good= , I haven't figured that part at all. Then there is an standard for arm called ICE something or other (apparently there are different names and interfaces for different versions of arm) which lets you look at the differ= ent registers of arm and do interesting things to it. Then there is how the JTA= G is cabled inside the SoCer itself: http://www.marvell.com/products/processors/embedded/kirkwood/HW_88F6281_Ope= nSource.pdf I am working my way slowly through this sorry if this a tad incoherent, but I haven't figured most of it yet. G.