GT-64260A Design Guide
Doc. No. MV-S300165-00, Rev. A
CONFIDENTIAL
Copyright © 2002 Marvell
Page 88
Document Classification: Proprietary Information
May 21, 2002, Preliminary
12.3 Circular Queue
The Circular Queue mechanism is used for passing queued messages between intelligent agents on a PCI bus to
the CPU. The I
2
O mechanism supplies the user with a useful way of passing messages on the SDRAM from PCI
devices to the CPU without accessing the SDRAM.
12.3.1 Inbound Circular Queue
The PCI device writes to the Inbound Queue Port Virtual register (Offset: 0x1c40 and 0x1cc0) and the GT-64260A
asserts an interrupt to the CPU and increments the head pointer. The CPU reads the message, increments the tail
pointer, and writes to the Inbound Free Head Pointer register (Offset: 0x1c60 and 0x1ce0). This asserts an inter-
rupt to the PCI device as a message acknowledgement. See
Figure 40: Inbound Circular Queue
The inbound message handling is as follows:
1.
When not using interrupts while in idle state (no message pending), the CPU must poll the Inbound Interrupt
Cause register’s
InPQ
bit [4], at offsets 0x1c24 and 0x1ca4. When interrupt is used, the interrupt handler
must identify the interrupt cause.
GT-64260A
PCI
PCI I/O
Device
CPU
Inbound Post
Queue
2. GT-64260A
asserts an interrupt
to the CPU.
3. The CPU reads the
message from DRAM
location pointed by Inbound
Post Tail Pointer and
increments the tail pointer.
1. The PCI writes the message
to the inbound port queue. The
GT-64260A writes the message
to a DRAM location specified by
the Inbound Post Head pointer
and increments the head pointer.