![Intel IXP45X Скачать руководство пользователя страница 548](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092548.webp)
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors—PCI Controller
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
Develepor’s Manual
August 2006
548
Order Number: 306262-004US
The PCI interrupt is enabled by the PDB bit of the Interrupt Enable Register (pci_inten).
When this bit is set and at least 1 bit is set in the pci_pcidoorbell register, an interrupt
is asserted on the PCI_INTA_N open-drain output.
The PDB bit — Bit 7 of the PCI Interrupt Enable Register (PCI_INTEN) — is used to
enable the external PCI Interrupt. When bit 7 is set to logic 1, the external PCI
Interrupt logic is enabled, an interrupt is asserted on the PCI_INTA_N open-drain
output. When bit 7 is set to logic 0 the external PCI Interrupt logic is disabled.
Bit 7 of the PCI Interrupt Status Register (PCI_ISR) displays the status of the external
PCI Interrupt. This bit will be set to logic 1 when any of the PCI_PCIDOORBELL bits are
set to logic 1.
10.3.5.2
Internal Interrupt Generation
The PCI Controller employs three internal interrupt outputs to signal AHB agents of the
occurrence of various events. The PCC_INT signal is a general-purpose interrupt, while
PCC_ATPDMA_INT, and PCC_PTADMA_INT are DMA interrupts. All interrupts are high-
active and remain asserted until an AHB agent clears the interrupting source by writing
appropriate CSR register bits in the PCI Controller.
The general-purpose interrupt pcc_int is can be asserted when:
• A PCI error occurs
• An AHB error occurs
• An AHB-to-PCI DMA transfer is complete or terminates due to an error
• A PCI-to-AHB DMA transfer is complete or terminates due to an error
• A doorbell is “pushed” by an external PCI device
The PCI_ISR register indicates the source(s) of the PCC_INT interrupt. The PCC_INTEN
register provides an enable for each of the sources in PCI_ISR. If a bit is set in PCI_ISR
and its corresponding enable is set in PCI_INTEN, the PCC_INT output will be asserted
high-active. The interrupt remains asserted until either the source in PCI_ISR or the
enable in PCI_INTEN is cleared. Clearing an interrupt source may involve clearing bits
in other CSR registers.
The PCI_AHBDOORBELL register is used to generate the doorbell interrupt to an AHB
agent. This register is read/write-1-to-set from the PCI bus, and read/write-1-to-clear
from the AHB bus. All bits are ORed together to generate the interrupt. The sequence
is:
• an external PCI agent writes a pattern of ones to the PCI_AHBDOORBELL register,
setting the corresponding bits in the register and asserting the interrupt to the AHB
agent.
• the AHB agent reads the bit pattern in the doorbell register and writes the same
pattern back to clear the bits and deassert the interrupt.
The DMA interrupt PCC_ATPDMA_INT is asserted when the APDCEN of the DMA Control
register is set and the DMA transfer completes or terminates due to an error. DMA
completion, with or without error, is indicated by either APDC0 or APDC1 bits being set,
where 0/1 corresponds to the DMA register set used for the transfer (PCI_ATPDMA0/
1_xxx).
Likewise, the DMA interrupt PCC_PTADMA_INT is asserted when the PADCEN of the
DMA Control register is set and the DMA transfer completes or terminates due to an
error. DMA completion, with or without error, is indicated by either PADC0 or PADC1
bits being set, where 0/1 corresponds to the DMA register set used for the transfer
(PCI_PTADMA0/1_xxx).