338 Hardware Reference Manual
Intel® IXP2800 Network Processor
PCI Unit
The Doorbell Setup register allows the Intel XScale® core and a PCI device to perform two
functions that are not possible using the Doorbell register. This register is used during setup and
diagnostics and is not used during normal operations. First, it allows the Intel XScale® core and
PCI device to clear an interrupt that it has generated to the other device. If the Intel XScale® core
sets an interrupt to PCI device using the Doorbell register, the PCI device is the only one that can
use the Doorbell register to clear the interrupt by writing one. With the Doorbell setup register, the
Intel XScale® core can clear the interrupt by write 0 to it.
Second, it allows the Intel XScale® core and PCI device to generate a doorbell interrupt to itself.
This can be used for diagnostic testing. Each bit in the Doorbell Setup register is mapped directly to
the data input of the Doorbell register such that the data is directly written into the Doorbell
register.
During system initialization, the doorbell registers must be initialized by clearing the interrupt bits
in the Doorbell register using the Doorbell Setup register. This is done by writing zeros to the PCI
Doorbell setup register and ones to the Intel XScale® core Doorbell setup register.
Figure 125. Generation of the Doorbell Interrupts to the Intel XScale® Core
A9772-02
1. PCI device write 1 to
clear bit and generate
a FIZ/IRQ.
FIQ or IRQ
Intel XScale® Core
DOORBELL Register
R
S
Q
D
2. Intel XScale® Core Reads
XSCALE_DOORBELL to
determine the Doorbell
interrupt
(e.g.; reads 0x0030 F2F1).
3. Intel XScale® Core inverts
the read value and write
back the results to clear interrupt
(e.g., write 0x0030 F2F1 ^ 0xFFFF FFFF = 0xFFCF 0C0E).