-d Can be used to set the debug string, see below.
-m and -s Set the mount point and srv name respectively. By default the mount point is /n/jtagfs/ctl .
-b Motherboard kind jtagfs is going to be run against. Valid parameters are sheeva, which stands for the Feroceon Guruplug and the sheevaplug and is the default and gurudisp which stands for the Armada Guru Display.
-t The text file presented is just a copy of text (default /arm/s9plug ). It can usually be ignored, since the debuggers open kernel files directly rather than using /proc/ n /text.
Kernels can be remotely debugged only when they are stopped and put in debug mode. This can be done through instruction breakpoints, vector catching (on entry to interrupts) or on demand using stop().
An acid library to use with the most common operations called jtag is provided to make most common operations simpler. In particular start(), stop() and waitstop() have jtag specific variants (for example sheevastart() ) which disable and reenable the watchdog. Other than this functions and the symbol translations, this program can be used to debug kernels from other operating systems.
The function veccatch(str) can be used to set a vectorcatch, which stops the processor right after an interrupt. The string describes which interrupts to cacth. Each caracter represents a type of interrupt: .EX 'R' Reset 'S' SWI 'P' PAbort 'D' DAbort 'I' Irq 'F' Fiq
The function debug(str) can be used to set different levels of debug. Each character on the string represent a different software layer:
.EX DFile = 'f', /* Reads, writes, flushes*/ DPath = 'p', /* path for state transitions for tap debugging */ DState = 's', /* state calculation and changes on tap interface */ Dinst = 'i', /* mpsse instruction assembling debug */ Dassln = 'a', /* print instructions before assembling */ Dmach = 'm', /* print mpsse machine code and op results */ Djtag = 'j', /* print jtag level operations */ Dice = 'e', /* print icert level operations */ Dchain = 'h', /* print icert chains */ Dmmu = 'u', /* print MMU ops */ Dctxt = 'c', /* dump context in and out */ Darm = 'w', /* standard insts and so */ Dmem = 'y', /* memory ops */ Dfs = 'k', /* filesystem ops */ DAll = 'A'
``ARM9E-S Technical Reference Manual''.
``ARM7TDMI-S Core Technical Reference Manual".
``Application note 205 "Writing JTAG Sequences for Arm 9 Processors".
``Design and Implementation of an On-Chip Debug for Embedded Target Systems", Dominic Rath.
``IEEE Standard 1149-1-2001 Test Access Port and Boundary Scan Architecture", JTag IEEE standard.
``AN2232C-01 Command Processor for MPSSE and MCU Host Bus Emulation Modes", Future Technology Devices International Ltd.