![Intel IXP45X Скачать руководство пользователя страница 808](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092808.webp)
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors—Interrupt Controller
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
Developer’s Manual
August 2006
808
Reference Number: 306262-004US
In addition to the natural priority the lowest eight interrupts, interrupt 0 to interrupt 7,
can be assigned a priority value by writing the interrupt priority register (INTR_PRTY).
The interrupt priority register is broken up into eight 3-bit registers.
Bits 0 through 2 of the interrupt priority register assign a priority value to interrupt 0
(NPE A). Bits 3 through 5 of the interrupt priority register assign a priority to interrupt
1 (Ethernet NPE B). The interrupt priority values are assigned in a similar pattern to the
assignments above for the first eight interrupts with the last interrupt priority
assignment being bits 21 through 23 of the interrupt priority register assigning a
priority value to interrupt 7.
The 3-bit interrupt priorities for each of the first eight interrupts can take on a value
from 0 to 7. A value of 0 — located the 3-bit interrupt priority register for each of the
first eight interrupts — signifies the highest priority interrupt. A value of 7 — located
the 3-bit interrupt priority register for each of the first eight interrupts — signifies the
lowest priority interrupt. In the case of two interrupts being assigned the same priority,
the interrupts natural priority will assign who has the highest priority.
For example, interrupt number 1 and interrupt number 3 both have a value of 0 —
written as their 3-bit interrupt priorities. Interrupt number 1 would take priority over
interrupt number 3 due to their individual natural priorities.
The priorities assigned to each of the 3-bit interrupt priorities for the first eight
interrupts will be set to a value of the corresponding interrupt number (interrupt
number 0 gets assigned a value of 0 in the associated 3-bit interrupt priority register,
interrupt number 1 gets assigned a value of 1, etc.) when receiving a reset. Therefore,
allowing natural priorities to be the default after a reset. While the same effect could be
achieved by resetting the register to all zeros (where the positional priority takes
precedence) the reset value reflects the intent of the priority.
17.4.2
Assigning FIQ or IRQ Interrupts
The Interrupt Controller for the IXP45X/IXP46X network processors provides the
capability to assign each interrupt as an FIQ or an IRQ interrupt. As discussed earlier,
the Intel XScale processor only receives a single FIQ interrupt signal and a single IRQ
interrupt signal.
The Interrupt Controller allows multiple interrupts to be sent to the Intel XScale
processor as either FIQ interrupts or IRQ interrupts. Each interrupt may be assigned as
an FIQ interrupt or an IRQ interrupt but never both. The interrupts are assigned as an
FIQ interrupt or an IRQ interrupt by writing bits in the interrupt select register
(INTR_SEL/INTR_SEL2).
The Interrupt Select Register is a pair of 32-bit registers that assigns each of the 64
interrupts to a FIQ interrupt or an IRQ interrupt. Bit 0 of the Interrupt Select Register
corresponds to interrupt number 0 (NPE A). Bit 31 of the Interrupt Select Register 2
corresponds to interrupt number 63.
Logic 1 written to a bit in the Interrupt Select Register will assign the corresponding
interrupt number as an FIQ interrupt. Writing logic 0 to the same bit in the Interrupt
Select Register will assign the corresponding interrupt number as an IRQ interrupt.
For example, the Interrupt Select Register is written with a hexadecimal value of
0x00000005. The result of this write would set interrupt number 0 (NPE A) as an FIQ
and interrupt number 2 (Ethernet NPE C) as an FIQ.
All other interrupt numbers would be assigned as IRQ interrupts. All interrupts are
assigned as IRQ interrupts upon receiving a reset because the register is cleared to
0x00000000.