English
Language : 

UM0851 Datasheet, PDF (33/245 Pages) STMicroelectronics – SPEAr is a family of highly customizable ARM-based embedded
UM0851
Platform section
Figure 4. VIC block diagram
VICINTSOURCE[31:0]
FIQSTATUS[31:0]
Non-vectored FIQ
interrupt logic
Interrupt
request
logic
Non-vectored IRQ
IRQSTATUS[31:0]
interrupt logic
Vectored interrupt 0
Vectored interrupt 1
IRQ0
VectAddr0
IRQ1
VectAddr1
IRQn
VectAddrn
IRQ15
Vectored interrupt 15 VectAddr15
IRQ vector
address and
priority logic
nVICFIQ
nVICIRQ
nVICIRQIN
VICVECTADDRIN
VICVECTADDROUT
nVICFIQIN
HCLK
HSELVIC
HRESETn
HWRITE
HREADYIN
HREADYOUT
HRESP[1:0}
IRQ
VectAddrin
VectAddrOut
AHB slave interface
HTRANS
HADDR[11:2]
HRDATA[31:0]
HWDATA[31:0]
HSIZE[2:0]
HPROT
Control logic
3.2.2
Software overview
Linux provides the generic interrupt handling layer which contributes to the complete
abstraction of interrupt handling for device drivers. It is able to handle all the different types
of interrupt controller hardware. Device drivers use generic API functions to request, enable,
disable and free interrupts. The drivers do not have to know anything about interrupt
hardware details, so they can be used on different platforms without code changes.
At Linux level there are three main levels of abstraction in the interrupt code:
● High level driver API
● High level IRQ flow handlers
● Chip level hardware encapsulation
Interrupt control flow
Each interrupt is described by an interrupt descriptor struct irq_desc. The interrupt is
referenced by an 'unsigned int' numeric value which selects the corresponding interrupt
Doc ID 16604 Rev 2
33/245