Messaging Units Functional Overview
Messaging
Copyright © 2002 Marvell
CONFIDENTIAL
Doc. No. MV-S300165-00, Rev. A
May 21, 2002, Preliminary
Document Classification: Proprietary Information
Page 87
Section 12. Messaging Units Functional Overview
The GT-64260A messaging unit includes hardware hooks for message transfers between PCI devices and the
CPU. The messaging unit can be divided into three different messaging types: messaging, doorbell, and I
2
O.
Note
The polarity of the messaging unit doorbells, interrupt cause, and interrupt mask registers bits are
determined via the Queue Control register’s Polarity bit 8, at offset 0x1C50. If set to '0', interrupts are
masked by a mask bit set to '1' and cause bits are cleared by writing '1'. If set to '1', interrupts are masked
by a mask bit set to '0' and cause bits are cleared by writing '0'.
12.1 Messaging
These types of messages send and receive short messages over the PCI bus, without transferring data into local
memory. Messages from PCI-to-CPU use the Inbound message mechanism, and messages from CPU-to-PCI use
the Outbound message mechanism. The GT-64260A implements four channels of messaging types, two inbound
and two outbound. Each channel implements one message register, one interrupt cause bit, and one interrupt
mask bit.
Each Inbound Message register can only implement a single message. This means two messages per PCI inter-
face (total of four messages). It is the system’s responsibility to restrict the message sender to a single message
by using the outbound message or any other acknowledge. If the system cannot restrict the message generator to
a single message, it must use the Circular Queues mechanism.
For more information, see the GT-64260A datasheet’s "Message Registers" section.
12.2 Doorbell
This mechanism enables the system to generate interrupts to CPU and PCI interfaces by using the Doorbell regis-
ters. The doorbell to the CPU is generated by the PCI which sets a bit in the Inbound Doorbell register, at offsets
0x1c20 and 0x1ca0. An interrupt to the PCI is generated by the CPU which sets a bit in the Outbound doorbell reg-
ister, at offsets 0x1C2C and 0x1CAC.
The PCI cannot clear the Inbound Doorbell register. It can only set the bits to '1' and generate an interrupt.
Note
In the above sequence, the CPU must clear a bit in the Inbound Doorbell register by writing '1' and not '0'.
For more information, see the GT-64260A datasheet’s "Doorbell Registers" section.