8.1 EJTAG on-chip debug unit
Programming the MIPS32® 74K™ Core Family, Revision 02.14
116
Where:
ASIDsup
: is 1 if the breakpoints can use ASID matching to distinguish addresses from different address spaces; on the
74K core that’s available if and only if a TLB is fitted.
BCN
: the number of hardware breakpoints available (two data, four instructions).
BS1-0, BSD3-0
: bitfields showing breakpoints which have been matched. Debug software has to clear down a bit after a
breakpoint is detected.
Then each EJTAG hardware breakpoint (“n” is 0-3 to select a particular breakpoint) is set up through 4-6 separate
registers:
•
IBCn, DBCn
: breakpoint control register shown at Figure 7-9 below;
•
IBAn, DBAn
: breakpoint address;
•
IBAMm, DBAMn
: bitwise mask for breakpoint address comparison. A "1" in the mask marks an address bit which
will be excluded from comparison, so set this zero for exact matching.
Ingeniously,
IBAMm[0]
corresponds to the slightly-bogus instruction address bit zero used to track whether the
CPU is running MIPS16 instructions, and allows you to determine whether an EJTAG I-breakpoint may apply
only in MIPS16 (or non-MIPS16) mode.
•
IBASIDn, DBASIDn
specifies an 8-bit ASID, which may be compared against the current
EntryHi[ASID]
field to
filter breakpoints so that they only happen to a program in the right "address space". The ASID check can be
enabled or disabled using
IBCn[ASIDuse]
or
DBCn[ASIDuse]
respectively - see Figure 7-9 and its notes below. ID
(so that the break will only affect one Linux process, for example).
The higher 24 bits of each of these registers is always zero.
•
DBVn, DBVHin
the value to be matched on load/store breakpoints.
DBCHin
defines bits 63-32 to be matched for
64-bit load/stores: the 32-bit
27
74K has 64-bit load/store instructions for floating point.
Note that you can disable data matching (to get an address-only data breakpoint) by setting the value byte-lane
comparison mask
DBCn[BLM]
to all 1s.
So now let’s look at the control registers in
Figure 8.14 Fields in the IBS/DBS (EJTAG breakpoint status) registers
31
30
29 28 27
24 23
4 3 2 1
0
DBS
0
ASID-
sup
0
BCN =
2
0
BS1-0
IBS
BCN =
4
0
BSD3-0
27. A JTAG hardware breakpoint for a real 64-bit CPU would have 64-bit
DBVn
registers, so wouldn’t need
DBVHin
.
Summary of Contents for MIPS32 74K Series
Page 1: ...Document Number MD00541 Revision 02 14 March 30 2011 Programming the MIPS32 74K Core Family...
Page 10: ...Programming the MIPS32 74K Core Family Revision 02 14 10...
Page 54: ...3 8 The TLB and translation Programming the MIPS32 74K Core Family Revision 02 14 54...
Page 83: ......
Page 101: ...The MIPS32 DSP ASE 101 Programming the MIPS32 74K Core Family Revision 02 14...
Page 134: ...8 4 Performance counters Programming the MIPS32 74K Core Family Revision 02 14 134...