![Marvell PXA300 Скачать руководство пользователя страница 348](http://html.mh-extra.com/html/marvell/pxa300/pxa300_developers-manual_1734615348.webp)
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
PXA300 Processor and PXA310 Processor
Vol. I: System and Timer Configuration Developers Manual
Doc. No. MV-TBD-00 Rev. A
CONFIDENTIAL
Copyright © 12/13/06 Marvell
Page 348
Document Classification: Proprietary Information
December 13, 2006 10:46 am,
Preliminary
Not approved by Document Control. For review only.
12.3
Signal Descriptions
No external I/O signals are associated with the interrupt controller.
12.4
Operation
The Interrupt Controller Pending register (ICPR) has a bit for each of the peripherals (primary interrupt sources).
Each active interrupt sets the corresponding bit. The Interrupt Controller IRQ Pending register (ICIP) and the
Interrupt Controller FIQ Pending register (ICFP) identify the active, unmasked, pending interrupt sources that
are causing IRQ- and FIQ-level interrupts, respectively. Interrupts are set at their source and masked or
unmasked in the interrupt controller. The programmable Interrupt Controller Mask register (ICMR) is used to
choose which interrupt source is masked. Masked interrupt sources do not cause an IRQ or FIQ interrupt to the
core and only update the ICPR. The Interrupt Control Level register (ICLR) is used to choose whether an
interrupt causes an IRQ or an FIQ.
Because more than one unmasked interrupt may be active at the same time, the processor must select the one
with the highest priority. Software can determine which has the highest priority through the ICIP and ICFP or by
reading the Interrupt Controller Highest Priority (ICHP) register at the controller that contains the peripheral ID
with the highest priority value among the active unmasked interrupts.
The second level of the interrupt structure is represented by registers contained in the source device (the device
that generated the first-level interrupt bit). Second-level interrupt status provides additional information about
the interrupt and is used inside the interrupt-service routine. After it reads the first-level registers, software reads
the registers in the device to determine the function that is causing the interrupt. In general, multiple second-level
interrupts are ORed to produce a first-level interrupt bit. Interrupts are enabled inside the source device.
Interrupt-Priority registers (IPRs) specify the mapping between the different priority levels and the peripheral
IDs. The interrupt controller uses these set values to prioritize the active unmasked interrupts and to update the
ICHP register. The core can read the highest priority peripheral ID for both IRQ- and FIQ-level from the ICHP.
The highest priority register is automatically updated with the peripheral ID, software is not required to examine
each of the pending interrupts to determine which peripheral ID has the highest priority. ICHP is updated with
both the highest priority IRQ and FIQ peripherals.
Most interrupt controller registers can be accessed using coprocessor-register access mode or
memory-mapped-register access mode. The software can use either access method. Anomalies that can occur
due to the varying access latencies in each mode must be considered. For example, a coprocessor-mapped read of
a register that immediately follows a memory-mapped register write to the register may not yield the correct
value. To ensure that the memory-mapped write has been performed properly, the memory-mapped register I/Os
must be read immediately after the write.
For coprocessor-register access mode, coprocessor space number six is used. Interrupt controller registers can
only be accessed in supervisory mode. If any software process attempts to access the registers in the coprocessor
mode, it receives an undefined access error. A software process that attempts to access the registers in
memory-mapped-register access mode triggers a data-abort error. Software sets the enabling and access options
for the coprocessor. Detailed information on setting access and enable options can be found in the Intel XScale®
Microarchitecture Programmer’s Reference Manual.
When the processor is in S0/D0/C1 state, the occurrence of any enabled interrupt causes the processor to resume
operation. When ICCR disable-idle mode (DIM) is cleared (its default state), the interrupt controller ignores
interrupt masks when the processor is in S0/D0/C1.