69rlq62d-f714peg4 * Memec (Headquar
ter
s) - Unique
Tec
h,
Insight,
Impact
MAR
VELL CONFIDENTIAL,
UNDER ND
A# 12101050
69rlq62d-f714peg4 * Memec (Headquar
ter
s) - Unique
Tec
h,
Insight,
Impact
MAR
VELL CONFIDENTIAL,
UNDER ND
A# 12101050
69r
lq62d-f714peg4 * Memec (Headquar
ters) - Unique
T
ech, Insight, Impact * UNDER ND
A# 12101050
MAR
VELL CONFIDENTIAL - UNA
UTHORIZED DISTRIB
UTION OR USE STRICTL
Y PR
OHIBITED
Interrupt Controller
12
Copyright © 12/13/06 Marvell
CONFIDENTIAL
Doc. No. MV-TBD-00 Rev. A
December 13, 2006 10:46 am,
Preliminary
Document Classification: Proprietary Information
Page 381
Not approved by Document Control. For review only.
12.5.7
Interrupt Priority Registers 0 to 52
These registers are used to set a peripheral ID for each priority value. At reset, these registers are marked invalid.
Software must program the values in these registers after reset, before it unmasks the interrupts.
These registers allow unique priority values to be defined for each peripheral. The interrupt controller uses the
priority values to resolve situations in which multiple active unmasked interrupts occur at the same time. Each
register contains the peripheral ID assigned to the corresponding priority. The priority value for the register is the
register number. Priority 0 is the highest priority and 52 is the lowest priority. The peripheral ID with Priority 0 is
written to IPR0. IPR52 contains the peripheral ID with priority 52, etc. The contents of the IPRs typically are not
changed during execution.
If the contents of these registers are changed during execution, all interrupts must be masked. The interrupts must
be masked until the changes written to the IPRs have taken effect. Interrupts can be disabled by writing to the
Core Program Status register (CPSR) and altering its F-bit and I-bit.
The IPRx[31] is the valid bit (0b1 = valid and 0b0 = invalid). The peripherals IDs range between 0 and 52.
Peripheral IDs for different sources are shown in
. The lower six bits are used to assign peripheral IDs.
A valid peripheral ID must be in to the Priority registers. However, if a non-valid or non-existing peripheral ID
(say 59 or 63 for example) is programmed into one of the Priority registers, it is ignored and does not have any
effect on the determination of the highest priority FIQ and IRQ interrupts. To ease the highest priority selection
process in the hardware, only one peripheral ID can be assigned to a single priority value. In addition, hardware
does not offer any protection against assigning one peripheral ID to multiple priority values. Software must
ensure that such cases are avoided. Where multiple-priority values are assigned to one peripheral, the hardware
uses the highest priority value only and ignores the others.
shows the format for IPR registers.
Table 12-13. ICCR Bit Definitions
Physical Address
0x40D0 0014
ICCR
Interrupt Controller
User
Settings
Bit
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
8
7
6
5
4
3
2
1
0
reserved
DIM
Reset
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
0
Bits
Access
Name
Description
31:1
—
—
reserved
0
R/W
DIM
0 = Any interrupt in ICPR wakes up the processor out of S0/D0/C1
modes. This only effects the wake-up, not the interrupt bit.
1 = Only active, unmasked interrupts (as defined in the ICMR) bring the
processor out of S0/D0/C1 modes. Cleared during resets.
This bit only affects the wake-up from S0/D0/C1 modes. This bit is
ignored in the S0/D0/C0 run mode.