
MOTOROLA
Chapter 5. Exceptions
5-23
Exception Definitions
occurred and the system terminates the current transaction. One clock cycle after the signal
is asserted, the data bus signals go to the high-impedance state; however, data entering the
GPR or the cache is not invalidated. Note that if HID0[EMCP] is cleared, the core ignores
the assertion of the core_mcp signal.
A machine check exception also occurs when an address or data parity error is detected on
the bus and the address or data parity error is enabled in HID0. See Section 2.1.2.1,
“Hardware Implementation Register 0 (HID0),” for more information.
Note that the G2 core makes no attempt to force recoverability on a machine check;
however, it does guarantee that the machine check exception is always taken immediately
upon request, with a nonpredicted address saved in SRR0, regardless of the current
machine state. Because pending stores in the store queue (see Figure 7-4) are not canceled
when a machine check exception occurs, two consecutive stores that result in the assertion
of core_tea can cause the processor to checkstop. To prevent a checkstop in this case, a
sync
instruction must be placed between two stores that can result in assertion of core_tea.
Software can use the machine check exception in a recoverable mode to probe memory. For
this case, a
sync
, load,
sync
instruction sequence is used. If the load access results in a
system error (for example, the assertion of core_tea), the processor can handle this in a
recoverable state. If the
sync
instruction is not used, a second access to the same address as
the first load could cause the processor to enter the checkstop state.
If the MSR[ME] bit is set, the exception is recognized and handled; otherwise, the G2 core
attempts to enter an internal checkstop. Note that the resulting machine check exception has
priority over any exceptions caused by the instruction that generated the bus operation.
Machine check exceptions are only enabled when MSR[ME] = 1; this is described in
Section 5.5.2.1, “Machine Check Exception Enabled (MSR[ME] = 1).” If MSR[ME] = 0
and a machine check occurs, the processor enters the checkstop state; this is described in
Section 5.5.2.2, “Checkstop State (MSR[ME] = 0).”
5.5.2.1
Machine Check Exception Enabled (MSR[ME] = 1)
When a machine check exception is taken, registers are updated as shown in Table 5-13.
When a machine check exception is taken, instruction execution for the handler begins at
offset 0x00200 from the physical base address indicated by MSR[IP].
In order to return to the main program, the exception handler should do the following:
1. SRR0 and SRR1 should be given the values to be used by the
rfi
instruction
2. Execute
rfi
F
Freescale Semiconductor, Inc.
For More Information On This Product,
Go to: www.freescale.com
n
.