Messaging Units Functional Overview
Circular Queue
Copyright © 2002 Marvell
CONFIDENTIAL
Doc. No. MV-S300165-00, Rev. A
May 21, 2002, Preliminary
Document Classification: Proprietary Information
Page 89
2.
When InPQ is set to '1', the CPU must clear it.
3.
At this point, the CPU reads the Inbound Post Head Pointer register, at offset 0x1c68, and the Inbound Post
Tail Pointer register, at offset 0x1c6c, so it can calculate the number of pending messages.
4.
The CPU starts reading the pending messages. It increments the tail pointer for each message.
5.
The CPU returns to Step 1 until all the pending messages are read.
12.3.2 Outbound Circular Queue
The CPU writes to the Outbound Queue Port Virtual Register (Offset: 0x1c44 and 0x1cc4) and increments the
head pointer. The GT-64260A asserts an interrupt to the PCI device. The PCI device reads the message and the
tail pointer is incremented by the GT-64260A. The PCI device must write to the Outbound Free Head Pointer reg-
ister (Offset: 0x1c70 and 0x1cf0). This write asserts an interrupt to the CPU as a message acknowledgement,
Figure 41: Outbound Circular Queue
For more information, see the GT-64260A datasheet’s "Circular Queues Data Storage".
CPU
Outbound Post
Queue
GT-64260A
PCI
PCI I/O
Device
1. The CPU writes the message
to the DRAM location specified by
the Outbound Post Head pointer
and increments the pointer.
2. The GT-64260A
asserts an interrupt to
the PCI device.
3. The PCI reads the message from
the outbound port. The GT-64260A
translates the message to read from
the DRAM location specified by the
Outbound Post Tail pointer and
increments the pointer.