![](http://datasheet.mmic.net.cn/230000/79RC32438-200BB_datasheet_15568909/79RC32438-200BB_477.png)
IDT EJTAG System
EJTAG Processor Core Extensions
79RC32438 User Reference Manual
20 - 11
November 4, 2002
Notes
Coprocessors
A Debug Mode Coprocessor Unusable exception is raised under the same conditions as for a Copro-
cessor Unusable exception in Kernel Mode (see section “Exceptions Taken in Debug Mode” on page 20-
19). Therefore, Debug Mode software cannot reference Coprocessors 1 through 2 without first setting the
respective enable in the Status register.
Random Register
The Random register (CP0 register 1, select 0) can be frozen in Debug Mode, whereby execution with
and without debug exceptions are identical with respect to TLB exception handling. If the values that the
Random register provides cannot be identical in behavior to the case where debug exceptions do not occur,
then freezing the Random register has no effect, because execution with and without debug exceptions will
not be identical. Stalls when entering Debug Mode (for example, due to pending scheduled loads resolved
at context save in the debug handler) can make it impossible in some implementations to ensure that the
Random register will provide the same set of values when running with and without debug exceptions.
There is no bit to indicate or control if the Random register is frozen in Debug Mode, so the user must
consult system documentation.
Counter Register
The Count register (CP0 register 9) operation in Debug Mode depends on the state of the CountDM bit
in the Debug register (see section “Debug Register (CP0 Register 23, Select 0)” on page 20-25). The Count
Register has three possible configurations, depending on the implementation:
–
Count register runs in Debug Mode the same as in Non-Debug Mode
–
Count register is stopped in Debug Mode but is running in Non-Debug Mode
–
The CountDM bit controls the Count register behavior in Debug Mode whereby it can be either
running or stopped.
Stopping of the Count register in Debug Mode is allowed in order to prevent generation of an interrupt at
every return to Non-Debug Mode, if the debug handler takes so long to execute that the Count/Compare
registers request an interrupt. In this case, system timing behavior might not be the same as if no debug
exception occurred.
WatchLo/WatchHi Registers
The WatchLo/WatchHi registers (CP0 Registers 18 and 19) are inhibited from matching any instruction
executed in Debug Mode.
Load Linked (LL/LLD) and Store Conditional (SC/SCD) Instruction Pair
A DERET instruction does not clear the LLbit (see section “DERET Instruction” on page 20-24), neither
does the occurrence of a debug exception. Loads and stores to uncacheable locations that do not match
the physical address of the previous LL instruction do not affect the result of SC instruction. The value of the
LLbit is not directly visible by software.
SYNC Instruction Behavior
The SYNC instruction is used to request the hardware to commit certain operations before proceeding.
For example, a SYNC is required to remove memory hazards on reference to dseg. Also, the SYNC instruc-
tion ensures that status bits in the Debug register and the hardware breakpoint registers are fully updated
before the debug handler accesses them and before Debug Mode is exited. Similarly, a SYNC combined
with appropriate spacing is used to remove Coprocessor 0 (CP0) hazards (see the next section, CP0 and
dseg Hazards). The SYNC instruction must provide specific behavior as described in Table 20.10.