JTAG (Joint Test Action Group) is an IEEE-standard which includes several methods to test and debug electrical hardware (also known as the "Standard Test Access Port and Boundary-Scan Architecture"). When using JTAG, the hardware can be tested for proper connections without using external measuring devices or measuring probes. IC's which support JTAG contain specific components which are disconnected under normal operation. If the JTAG function is enabled, the components are activated and different tests can be run. Using JTAG, it is for example possible to read/set the state of every FlipFlop inside an IC. By activating the JTAG components within an IC, the FlipFlops are interconnected through a shift register ("Data Register", DR) which can be read from outside the IC.

The JTAG interface has become very popular and it has increased in functionality. It is now often used for configuration, programming or debugging purposes of microcontrollers. Over JTAG, a debugger can perform operations like single stepping and setting breakpoints. An advantage of JTAG is also that on most systems, it is available right after the reset which makes it possible to develop boot software which has to work before anything else is initialized.

In regard of the GuruPlug, the second functionality (configuration, programming, debugging) is the one we need. Since we have the JTAG-module which we can connect to our PC's USB-port, all we have to do is to start a terminal and it will show us the output right after the CPU starts. We can then use this connection to simply send commands through the standard input, debug the system and even change the boot software (uboot) of the GuruPlug.


Sources: