From 3e6feb7b0fac0c2d492451ffe1186480025e7ecd Mon Sep 17 00:00:00 2001 From: Kolja Waschk Date: Mon, 18 Feb 2008 09:27:41 +0000 Subject: [PATCH] More updates to the "commands" section git-svn-id: https://urjtag.svn.sourceforge.net/svnroot/urjtag/trunk@1049 b68d4a1b-bc3d-0410-92ed-d4ac073336b7 --- jtag/ChangeLog | 2 +- jtag/doc/UrJTAG.txt | 197 +++++++++++++++++++++++--------------------- 2 files changed, 102 insertions(+), 97 deletions(-) diff --git a/jtag/ChangeLog b/jtag/ChangeLog index 62f2d2fa..a254c188 100644 --- a/jtag/ChangeLog +++ b/jtag/ChangeLog @@ -1,7 +1,7 @@ 2008-02-18 Kolja Waschk * doc/UrJTAG.txt: How to use initbus (and ejtag/prototype bus driver) - (and some background notes about bus drivers in general) + and some other smaller updates in the "commands" section 2008-02-17 Arnim Laeuger diff --git a/jtag/doc/UrJTAG.txt b/jtag/doc/UrJTAG.txt index a74a7a5e..5a46ea8f 100644 --- a/jtag/doc/UrJTAG.txt +++ b/jtag/doc/UrJTAG.txt @@ -525,37 +525,37 @@ or: Following is a list of commands currently supported by jtag and some example usage. -*bit*:: define new BSR bit -*bus*:: change active bus -*bsdl*:: manage BSDL files -*cable*:: select JTAG cable -*detect*:: detect parts on the JTAG chain -*detectflash*:: detect parameters of flash chips attached to a part -*discovery*:: discovery of unknown parts in the JTAG chain -*dr*:: display active data register for a part -*endian*:: set/print endianess -*eraseflash*:: erase flash memory by number of blocks -*flashmem*:: burn flash memory with data from a file -*frequency*:: setup JTAG frequency -*get*:: get external signal value -*help*:: display this help -*include*:: include command sequence from external repository -*initbus*:: initialize bus driver for active part +*bit*:: define new BSR bit +*bus*:: change active bus +*bsdl*:: manage BSDL files +*cable*:: select JTAG cable +*detect*:: detect parts on the JTAG chain +*detectflash*:: detect parameters of flash chips attached to a part +*discovery*:: discovery of unknown parts in the JTAG chain +*dr*:: display active data register for a part +*endian*:: set/print endianess for reading/writing binary files +*eraseflash*:: erase flash memory by number of blocks +*flashmem*:: burn flash memory with data from a file +*frequency*:: setup JTAG frequency +*get*:: get external signal value +*help*:: display this help +*include*:: include command sequence from external repository +*initbus*:: initialize bus driver for active part *instruction*:: change active instruction for a part or declare new instruction -*part*:: change active part for current JTAG chain -*peek*:: read a single word -*poke*:: write a single word -*print*:: display JTAG chain list/status -*quit*:: exit and terminate this session -*readmem*:: read content of the memory and write it to file -*register*:: define new data register for a part -*scan*:: detect changes on input pins of current part -*script*:: run command sequence from external file -*set*:: set external signal value -*setdevice*::: force device detection -*shift*:: shift data/instruction registers through JTAG chain -*signal*:: define new signal for a part -*svf*:: execute svf commands from file +*part*:: change active part for current JTAG chain +*peek*:: read a single word +*poke*:: write a single word +*print*:: display JTAG chain list/status +*quit*:: exit and terminate this session +*readmem*:: read content of the memory and write it to file +*register*:: define new data register for a part +*scan*:: detect changes on input pins of current part +*script*:: run command sequence from external file +*set*:: set external signal value +*shift*:: shift data/instruction registers through JTAG chain +*signal*:: define new signal for a part +*svf*:: execute svf commands from file +*writemem*:: write content from file to memory Some tools derived from the same openwince JTAG Tools code base as UrJTAG know additional commands, which are not supported in UrJTAG. See the section @@ -599,31 +599,12 @@ Run commands from a named script file located anywhere. No directory prefix is a A number X may be specified after the name of the script file, causing the script to be run X times. -==== Part definition commands ==== - -The following commands are also used in the data files to define a device (IC) -on the jtag bus. It is not recommended to use these commands in an interactive -session. Instead you should produce a device definition file out of a .bsd file -using one of the supplied tools. - - * bit - * register - * signal - -==== Flash commands ==== - -These commands can be used if the device supports flashing. - - * detectflash - * flashmem - * eraseflash - ==== Chain management ==== ===== cable ===== -Sets and initialized the cable driver. This is usually the first -command that you are executing in a session. Example: +Sets and initialized the cable driver. This is usually the first command that +you are executing in a session. Example: jtag> cable EA253 parallel 0x378 Initializing ETC EA253 JTAG Cable on parallel port at 0x378 @@ -662,7 +643,7 @@ in progress; the above syntax may change (i.e. become simpler) soon. ===== detect ===== -Detects devices on the bus. Example: +Detects devices on the chain. Example: jtag> detect IR length: 5 @@ -674,19 +655,25 @@ Detects devices on the bus. Example: Filename: /usr/local/share/jtag/intel/pxa250/pxa250c0 During "detect", UrJTAG searches through the files in its database (usually in -/usr/share/urjtag) to find a match for the manufacturer, revision and part -number for the IDCODE read from the part. However, not all parts identify -themselves in a way that is useful for "detect". For example, many chips with -an ARM processor core inside present an IDCODE that may be specific to the the -particular core inside the chip (e.g. ARM7TDMI), but doesn't tell about the -actual manufacturer of the chip. In such case, the data for the part has to be -included manually. See also the documentation for the "include" command. +/usr/share/urjtag) and optionally in the search path for BSDL files (see bsdl +command) to find a match for the manufacturer, revision and part number for the +IDCODE read from the part. However, not all parts identify themselves in a way +that is useful for "detect". For example, many chips with an ARM processor core +inside present an IDCODE that may be specific to the the particular core inside +the chip (e.g. ARM7TDMI), but doesn't tell about the actual manufacturer of +the chip. In such case, the data for the part has to be included manually. See +also the documentation for the "include" command. + +===== print ===== + +Print a list of parts in the chain and the currently active instruction per part. ===== initbus ===== -Selects and initializes a bus of the currently selected part. This is required -in order to access chips that aren't connected in the JTAG chain, but indirectly -accessible through other chips (e.g. CPU or programmable logic). +Selects and initializes a bus of the currently selected part, e.g. the external +memory bus of a CPU. This is required in order to access chips that aren't +connected in the JTAG chain, but indirectly accessible through other chips +(e.g. CPU or programmable logic). Type "help initbus" to get a list of supported bus types. If you do not find a bus driver for your specific hardware, you might be lucky @@ -735,6 +722,45 @@ Some chips don't allow direct access to their pins via BSR at all. For these, writing a new bus driver that utilizes a debug module to upload specific code to access the bus is inevitable. +==== Part definition commands ==== + +The following commands are also used in the data files to define a device (IC) +on the JTAG chain. It is not recommended to use these commands in an interactive +session. Instead you should produce a device definition file out of a .bsd file +using one of the supplied tools (or use the new BSDL subsystem, see below). + +*bit*:: define new BSR bit +*instruction*:: change active instruction for a part or declare new instruction +*register*:: define new data register for a part +*signal*:: define new signal for a part + +==== TAP control ==== + +The following commands can be used to directly manipulate and display the state +of the TAP controller(s) and registers in the chain: + +*dr*:: display active data register for a part +*instruction*:: change active instruction for a part or declare new instruction +*get*:: get external signal value +*scan*:: detect changes on input pins of current part +*set*:: set external signal value +*shift*:: shift data/instruction registers through JTAG chain + +==== RAM/Flash access ==== + +These commands can be used if a part in the chain has memory connected to it +(or integrated). Before they can be used, a bus driver has to be selected and +initialized (see initbus command). + +*detectflash*:: detect parameters of flash chips attached to a part +*endian*:: set/print endianess for reading/writing binary files +*eraseflash*:: erase flash memory by number of blocks +*flashmem*:: burn flash memory with data from a file +*peek*:: read a single word +*poke*:: write a single word +*readmem*:: read content of the memory and write it to file +*writemem*:: write content from file to memory + ==== Highlevel commands ==== ===== svf ===== @@ -884,44 +910,23 @@ be added soon... ==== Source code Overview ==== -doc/:: - Documentation - -data/:: - Part descriptions (Data files) - -include/:: - C header files - -src/:: - C source code - -src/bsdl:: - BSDL subsystem - -src/bus:: - Bus driver for various CPUs and other parts - -src/cmd:: - Implementation of the commands for the "jtag" shell - -src/flash:: - Flash detection and programming algorithms - -src/jim:: - JIM, the JTAG target simulator +doc/:: Documentation -src/lib:: - Utility functions +data/:: Part descriptions (Data files) -src/part:: - Functions for accessing specific parts in a chain +include/:: C header files -src/svf:: - SVF player +src/:: C source code -src/tap:: - Functions for accessing the chain in general +src/bsdl:: BSDL subsystem +src/bus:: Bus driver for various CPUs and other parts +src/cmd:: Implementation of the commands for the "jtag" shell +src/flash:: Flash detection and programming algorithms +src/jim:: JIM, the JTAG target simulator +src/lib:: Utility functions +src/part:: Functions for accessing specific parts in a chain +src/svf:: SVF player +src/tap:: Functions for accessing the chain in general //------------------------------------------------------------------------