MPC563XM Reference Manual, Rev. 1
922
Freescale Semiconductor
Preliminary—Subject to Change Without Notice
single-step execution of a NOP instruction can be useful to control input signal sampling and filtering, if
signal ndedi_stop_pins=1 at the Debug Interface (see
eTPU Integration Guide
and
NDEDI Block
Guide
). Single-step does not happen if VIS=1.
23.4.10.2.7
Forced Microinstruction Execution
When microengine is already in halt state (either halt_idle or halt_exec), it can run forced
microinstructions through the debug interface. This feature is available from Nexus if eTPU is connected
to the NDEDI block (see
eTPU Integration Guide
and
NDEDI Block Guide
). The microinstruction,
specified by the user, is not fetched from SCM and comes directly from the debug interface. MDU start
commands issued by forced instructions are executed, and the MDU runs the operation until the end,
independently of the halt state. The microinstruction field END is ignored.
During forced execution of any instruction except Branches, Returns and Dispatches, the PC does not
change, and the prefetched instruction in the pipeline is bypassed, but not discarded. When halt state is
suspended, the prefetched instruction is executed and the instruction pointed by the PC is prefetched in
parallel (two-stage pipeline).
Forced execution of a Branch, Dispatch or Return loads the PC with the BAF field (if branch condition is
satisfied), PC+P or RAR, respectively. If branch condition is not satisfied, PC value stays unaltered. The
flush control (field FLS) also works, so that a successful forced branch with flush replaces the prefetched
instruction with a NOP. So, to clear the instruction pipeline during halt, all one has to do is an
unconditional branch to the desired address with flush. HALT instructions must not be executed as forced.
Forced operations that depend on the serviced channel are unpredictable when executed in halt_idle.
23.4.10.2.8
Microengine Register Access
eTPU provides no direct access to microengine and channel registers from IPI Skyblue or any other
interface. However, these registers can be read and written in halt state by executing forced
microinstructions (see
Section 23.4.10.2.7, “Forced Microinstruction Execution
). Immediate data
microinstructions may be used to set register values. Some registers are not selectable for immediate data
destination, so intermediary register(s) - notably P - may have to be used to carry the desired new value to
the target register in two or more microinstructions. Usually the previous values of intermediary register(s)
must be previously saved and restored after the whole operation.
Similar procedures apply for register reads: their contents must be dumped to SPRAM, where they can be
read from IPI Skyblue.
23.4.10.2.9
Microengine Flag Access
Microengine halt state allows reading the branch conditions flags through forced microinstructions or,
more easily, through the NDEDI register NDEDI_ENGINEx_CFSR (see the
NDEDI Block Guide
). Flag
conditions set by the user are seen by microengine for the next microinstruction execution. The flag set
options are limited by the possibilities of forced microinstruction execution.
If the eTPU runs (not single-stepping) after exiting the halted state, the conditions modified during halt
may remain only for the first microcycle after the halted state. After the first microcycle, branch conditions
are altered only according to their regular update scheme.