TM1100 Preliminary Data Book
Philips Semiconductors
17-4
PRELIMINARY INFORMATION
File: jtag.fm5, modified 7/25/99
module connects to a 4 pin JTAG connector on a Tri-
Media board which provides a path to the JTAG pins
on a TriMedia processor. It is the responsibility of the
interface module to scan data in and out of the TriMe-
dia processor into its internal buffers and make them
available to the host computer.
A JTAG controller on the TriMedia processor
which provides a bridge between the external
JTAG TAP and the internal system.
The controller transfers data from/to the TAP to/from
its scannable registers asynchronous to the internal
system clock. A monitor running on a TriMedia pro-
cessor and the debugger front-end running on a host
computer exchange data via JTAG by reading/writing
the MMIO registers reserved for this purpose, includ-
ing a control register used for the handshake.
17.3.1
JTAG Instruction and Data Registers.
TM1100 has two JTAG data registers and one JTAG
number a JTAG instructions to manipulate those regis-
ters.
Table 17-2 lists the MMIO addresses of the JTAG
data and control registers. The addresses are offsets
from MMIO_BASE. All references to instruction and data
registers below are JTAG instructions and data registers
and not TriMedia instruction or data registers.
Two 32-bit data registers, JTAG_DATA_IN and
JTAG_DATA_OUT in MMIO space. Both can be
connected in between TDI and TDO like the standard
Bypass and Boundary Scan registers of JTAG (not
The JTAG_DATA_IN register can be read or written to
via the JTAG port. The JTAG_DATA_OUT register is
read-only via the JTAG port, so that scanning out
JTAG_DATA_OUT is non-destructive.
The JTAG_DATA_IN and JTAG_DATA_OUT are read-
able/writable from the TriMedia processor via the
usual load/store operations.
An 8-bit control register JTAG_CTRL in MMIO
space. The JTAG_CTRL register is used for hand-
shake between a debug monitor running on a TriMe-
dia and a debugger front-end running on a host.
JTAG_CTRL.ofull = 1 means that JTAG_DATA_OUT
has valid data to be scanned out. On power-on reset
of the TriMedia Processor, JTAG_CTRL.ofull = 0.
JTAG_CTRL.ofull is both readable and writable via
JTAG tap. Writing 0 to JTAG_CTRL.ofull via JTAG is
a
‘remember’
operation,
i.e.,
JTAG_CTRL.ofull
retains
its
previous
state.
Writing
1
to
JTAG_CTRL.ofull via JTAG is a ‘clear’ operation, i.e.,
JTAG_CTRL.ofull becomes 0.
JTAG_CTRL.ifull = 0 means that the JTAG_DATA_IN
register is empty. JTAG_CTRL.ifull = 1 means that
JTAG_DATA_IN has valid data and the debug monitor
has not yet copied it to its private area. On power-on
reset of the TriMedia processor, JTAG_CTRL.ifull = 0.
JTAG_CTRL.ifull is readable and writable via JTAG.
Writing 0 to JTAG_CTRL.ifull via JTAG is a ‘remem-
ber’ operation, i.e., JTAG_CTRL.ifull retains it previ-
ous state. Writing 1 to JTAG_CTRL.ifull posts an
interrupt on hardware line 18.
The peripheral blocks on a TriMedia processor may
enter a “power down” state to reduce power con-
sumption. The JTAG_CTRL.sleepless bit determines
if the JTAG block participates in a power down state.
In the power-on RESET state, JTAG_CTRL.sleep-
less bit is 1 meaning the JTAG block does not power
down. It can be read and written to by the TriMedia
processor via load/store operations and by the
debugger front-end running on a host by scan in/out.
Two
virtual
registers,
JTAG_IFULL_IN
and
JTAG_OFULL_OUT.
The
rst
virtual
register
JTAG_IFULL_IN
connects
the
registers
JTAG_CTRL.ifull and JTAG_DATA_IN in series. Like-
wise, the virtual register JTAG_OFULL_OUT con-
nects JTAG_CTRL.ofull and JTAG_DATA_OUT in
series.
The reason for the virtual registers is to shorten the
time
for
scanning
the
JTAG_DATA_IN
and
JTAG_DATA_OUT registers. Without virtual registers,
Table 17-2. MMIO Register Assignments
MMIO Offset
JTAG Register
0x 10 3800
JTAG_DATA_IN
0x 10 3804
JTAG_DATA_OUT
0x 10 3808
JTAG_CTRL
To
TDO
JTAG_DATA_IN
JTAG_DATA_OUT
JTAG_CTRL
from
TDI
0
1
ifull
ofull
Unused Bits
7
0
31
0
Figure 17-3. Additional JTAG data registers and control register
2
Sleepless
Bit
3