UM10413
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2011. All rights reserved.
User manual
Rev. 1 — 16 December 2011
19 of 268
NXP Semiconductors
UM10413
MPT612 User manual
9.2 Description
The Vectored Interrupt Controller (VIC) takes 32 interrupt request inputs and assigns them
to 3 categories, FIQ, vectored IRQ, and non-vectored IRQ. The programmable
assignment scheme means that priorities of interrupts from the various peripherals can be
dynamically assigned and adjusted.
Fast Interrupt reQuest (FIQ) requests have the highest priority. If more than one request is
assigned to FIQ, the VIC ORs the requests to produce the FIQ signal to the ARM
processor. The fastest possible FIQ latency is achieved when only one request is
classified as FIQ because the FIQ service routine then deals with that device. If the FIQ
class is assigned several requests, the FIQ service routine can read a word from the VIC
that identifies which FIQ source(s) is (are) requesting an interrupt.
Vectored IRQs have the middle priority, but only 16 of the 32 requests can be assigned to
this category. Any of the 32 requests can be assigned to any of the 16 vectored IRQ slots
where slot 0 has the highest priority and slot 15 the lowest.
Non-vectored IRQs have the lowest priority.
The VIC ORs the requests from all the vectored and non-vectored IRQs to produce the
IRQ signal to the ARM processor. The IRQ service routine can start by reading a register
from the VIC and jumping there. If a vectored IRQ is requesting, the VIC provides the
address of the highest-priority requesting IRQ service routine, otherwise it provides the
address of a default routine shared by all the non-vectored IRQs. The default routine can
read another VIC register to see what IRQs are active.
All registers in the VIC are word registers. Byte and halfword read/write are not supported.
Additional information on the Vectored Interrupt Controller is available in the ARM
PrimeCell Vectored Interrupt Controller (PL190) documentation.
9.3 Register
description
The VIC implements the registers shown in
. More detailed descriptions follow.
Table 11.
VIC register map
Name
Description
Access Reset
value
Address
VICIRQStatus
IRQ status register. Reads out status of interrupt requests that are
enabled and classified as IRQ.
RO
0
0xFFFF F000
VICFIQStatus
FIQ status requests. Reads out status of interrupt requests that are
enabled and classified as FIQ.
RO
0
0xFFFF F004
VICRawIntr
raw interrupt status register. Reads out status of the 32 interrupt
requests/software interrupts, regardless of enabling or classification.
RO
0
0xFFFF F008
VICIntSelect
interrupt select register. Classifies each of the 32 interrupt requests
contributing to FIQ or IRQ.
R/W
0
0xFFFF F00C
VICIntEnable
interrupt enable register. Controls which of the 32 interrupt requests
and software interrupts are enabled to contribute to FIQ or IRQ.
R/W
0
0xFFFF F010
VICIntEnClr
interrupt enable clear register. Allows software to clear one or more
bits in the interrupt enable register.
WO
0
0xFFFF F014
VICSoftInt
software interrupt register. Contents of this register are ORed with
the 32 interrupt requests from various peripheral functions.
R/W
0
0xFFFF F018