e200z335 Core Complex Overview
e200z3 Power Architecture Core Reference Manual, Rev. 2
1-10
Freescale Semiconductor
1.5.3
Interrupt Types
The e200z3 core processes all interrupts as either debug, critical, or noncritical types. Separate control and
status register sets are provided for each type of interrupt. The core handles interrupts from these three
categories in the following order of priority:
1. Debug interrupt—The EIS defines a separate set of resources for the debug interrupt. The debug
save and restore registers (DSRR0/DSRR1) are used to save state when a debug interrupt is taken;
the rfdi instruction restores state when interrupt handling completes.The debug enable bit,
HID0[DAPUEN], determines what interrupt is taken when a debug exception occurs, as follows:
— If DAPUEN = 0, the debug interrupt is disabled. Debug interrupts use the critical interrupt
resources: CSRR0/CSRR1 and rfci; rfdi is treated as an illegal instruction. DCLREE,
DCLRCE, CICLRDE, and MCCLRDE settings are ignored and are assumed to be ones.
— If DAPUEN = 1, debug is enabled. Debug interrupts use DSRR0/DSRR1 for saving state, and
rfdi is available for returning from a debug interrupt.
2. Noncritical interrupts—First-level interrupts that allow the processor to change program flow to
handle conditions generated by external signals, errors, or unusual conditions arising from program
execution or from programmable timer events. These interrupts are largely identical to those
defined by the OEA portion of the architecture. They use the save and restore registers
(SRR0/SRR1) to save state when they are taken, and they use the rfi instruction to restore state.
Asynchronous noncritical interrupts can be masked by the external interrupt enable bit, MSR[EE].
3. Critical interrupts—Critical interrupts can be taken during a noncritical interrupt or during regular
program flow. They use the critical save and restore registers (CSRR0/CSRR1) to save state when
they are taken, and they use the rfci instruction to restore state. These interrupts can be masked by
the critical enable bit, MSR[CE]. The Power ISA defines the critical input, watchdog timer, and
machine check interrupts as critical interrupts, but the e200z3 core defines a third set of resources
for the debug interrupt, as described in
All interrupts except debug interrupts are ordered within the two categories of noncritical and critical, such
that only one interrupt of each category is reported, and when it is processed (taken), no program state is
lost. Because save/restore register pairs are serially reusable, program state may be lost when an unordered
interrupt is taken.
1.5.4
Interrupt Registers
The registers associated with interrupt handling are described in
.
Table 1-2. Interrupt Registers
Register
Description
Noncritical Interrupt Registers
SRR0
Save/restore register 0—Stores the address of the instruction causing the exception or the address of the instruction
that will execute after the
rfi
instruction.
SRR1
Save/restore register 1—Saves machine state on noncritical interrupts and restores machine state after an
rfi
instruction is executed.
Critical Interrupt Registers