MPC563XM Reference Manual, Rev. 1
924
Freescale Semiconductor
Preliminary—Subject to Change Without Notice
). The average time for a MISC calculation can be measured by checking
SCMMISC state at regular intervals, incrementing a counter and clearing SCMMISC if it is set.
MISC accesses to the SCM array are executed if none of the engines is accessing the SCM, to avoid
degradation of the microengine performance: it happens while no channel is being serviced. An ongoing
MISC operation can be aborted by writing 0 to SCMMISEN.
The Host must load the register ETPUMISCCMPR (see
Section 23.3.2.3, “ETPUMISCCMPR - eTPU
) with the expected value to be found at the end of the MISC cycle, and then start
the signature calculation writing bit SCMMISEN=1 in register ETPUMCR (see
“ETPUMCR - eTPU Module Configuration Register
). MISC zeroes the signature accumulator and starts
reading SCM data and calculating the signature. After last SCM position is read, MISC compares the value
in signature accumulator against the value in ETPUMISCCMPR: if there is a mismatch MISC stops, a
Global Exception is issued and the bit SCMMISF in register ETPUMCR assumes value 1. If no mismatch
is found, MISC repeats the procedure automatically. When signature is being calculated, SCM address
starts at the last SCM address and counts down to 0. The conditions for executing a MISC operation are
(see also
):
•
Both microengines in idle state (no channel is being serviced) or stopped, in any combination (e.g.,
engine 1 idle with engine 2 stopped).
•
ETPUMCR bit VIS = 0.
•
ETPUMCR bit SCMMISEN=1.
Note that MISC can run regardless of SCM implementation type (RAM or ROM).
If SCMMISEN=0 or VIS=1, the MISC logic stays at its initial state, with address counter pointing to the
last SCM position and accumulator reset.
23.4.10.4 Performance Monitoring Features
23.4.10.4.1
Idle Counter
The Idle Counter Register ETPUIDLER (see
Section 23.3.4.2, “ETPUIDLER - eTPU Idle Register
continuously counts microcycles in which the microengine is not busy with channel service. It can be used
to measure the microengine utilization by rating the count measured during a period of time to the number
of microcycles contained in the period. The Idle counter does not count microcycles when the engine is
stopped, or is in TST or halt states.
23.5
Initialization/Application Information
23.5.1
Configuration Sequence
After initial power-on reset the eTPU remains in an idle state
1
, requiring initialization of several registers
before any function can begin execution. Also, if the SCM is implemented in RAM, it should be initialized
with the eTPU application code prior to configuring the eTPU. Configuration procedures are summarized
as follows:
1.
except when SoC debug request is asserted on power-on reset: in this case, the microengines wake-up in halt state.