← Home

ISR: Interrupt Status Register

Purpose

Shows the pending status of the IRQ and FIQ interrupts and the SError exceptions.

Configuration

AArch32 System register ISR bits [31:0] are architecturally mapped to AArch64 System register ISR_EL1[31:0].

This register is present only when EL1 is capable of using AArch32. Otherwise, direct accesses to ISR are UNDEFINED.

Attributes

ISR is a 32-bit register.

Field descriptions

313029282726252423222120191817161514131211109876543210
RES0AIFRES0

Bits [31:9]

Reserved, RES0.

A, bit [8]

SError exception pending bit:

AMeaning
0b0

No pending SError exception.

0b1

An SError exception is pending.

If all of the following apply then this field shows the pending status of virtual SError exceptions:

Otherwise, this field shows the pending status of physical SError exceptions.

If the SError exception is edge-triggered, this field is cleared to zero when the physical SError exception is taken.

I, bit [7]

IRQ pending bit. Indicates whether an IRQ interrupt is pending:

IMeaning
0b0

No pending IRQ.

0b1

An IRQ interrupt is pending.

If all of the following apply then this field shows the pending status of virtual IRQ interrupts:

Otherwise, this field shows the pending status of physical IRQ interrupts.

F, bit [6]

FIQ pending bit. Indicates whether an FIQ interrupt is pending.

FMeaning
0b0

No pending FIQ.

0b1

An FIQ interrupt is pending.

If all of the following apply then this field shows the pending status of virtual FIQ interrupts:

Otherwise, this field shows the pending status of physical FIQ interrupts.

Bits [5:0]

Reserved, RES0.

Accessing ISR

Accesses to this register use the following encodings in the System register encoding space:

MRC{<c>}{<q>} <coproc>, {#}<opc1>, <Rt>, <CRn>, <CRm>{, {#}<opc2>}

coprocopc1CRnCRmopc2
0b11110b0000b11000b00010b000

if PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then if EL2Enabled() && !ELUsingAArch32(EL2) && HSTR_EL2.T12 == '1' then AArch64.AArch32SystemAccessTrap(EL2, 0x03); elsif EL2Enabled() && ELUsingAArch32(EL2) && HSTR.T12 == '1' then AArch32.TakeHypTrapException(0x03); else R[t] = ISR; elsif PSTATE.EL == EL2 then R[t] = ISR; elsif PSTATE.EL == EL3 then R[t] = ISR;