To perform the first write to the embedded system's flash, the JTAG bus is used by bypassing the system processor and using the JTAG serial bus to manually control the processor's input/out bus.
Various inexpensive JTAG options are available although almost all utilize the parallel port of a standard PC, and emulate the JTAG serial bus by manually clocking the serial data. This results in extremely poor performance (a transfer rate of approximately 3kbps) which creates very long programming and read times.
The approach taken in this
project was to create an alternative using a off the shelf JTAG bus controller
chip. This controller chip provides the parallel to serial conversion and correct
sequence control to operate the JTAG state machine. To further increase the
flexibility of this device it was decided to use the USB (Universal Serial Bus)
instead of the parallel port. The result of designing this board was an increase
in speed of 100 times.
Soekris net4501 with attached USB JTAG tool