Communication Interface Functional Overview
MPSC and Ethernet SW Implications
Copyright © 2002 Marvell
CONFIDENTIAL
Doc. No. MV-S300165-00, Rev. A
May 21, 2002, Preliminary
Document Classification: Proprietary Information
Page 69
•
Initializes the MPSC ports according to the user’s definition. See
AN-72: Operating the MPSC as a UART
and
•
Initializes the Ethernet ports. See
AN-66: Initializing Ethernet Ports on the GT-642xx and GT-961xx Devices
and
E.1 "Ethernet Initialization" on page 158
.
All communication interrupt events are marked in the ISR linked list.
7.4.2.2
Driver ISR
When the GT-64260A Communication Unit generates an interrupt, the interrupt controller calls a single ISR that
handles the variety interrupt causes. The ISR processes the interrupt in three stages:
1.
It reads the Interrupt Cause register, acknowledges the interrupt events, and masks the interrupt events bits.
2.
Adds a new node to the ISR linked-list according to the interrupt events. The counters in the ISR linked-list
nodes are set to MINIMUM_INTERRUPT_COUNTER (the default value is 30). The counter represents the
number of iterations of the application call back function. See
Section 7.4.2.3 "Driver’s Task"
3.
Using a semaphore, the driver’s task is invoked.
These three stages are necessary to allow high performance packets processing during stress. The main process-
ing takes place in the driver’s task, thus an effort has been made to reduce ISR overhead. For this reason, the
node counter is set to a value of MINIMUM_INTERRUPT_COUNTER (value 30).
7.4.2.3
Driver’s Task
The communication unit provides a single task named isrTask, located in the isrTask.c file. This task is responsible
for handling the communication unit events. This task has a linked-list data structure, in which each node repre-
sents a communication unit interrupt bit.
The task’s purpose is to scan this linked-list data structure and execute the user routine specified for each node
(call back functions). The call back functions treat each event accordingly. When the linked-list is not empty, the
task reads the first node, decreases a counter, and calls the user routine call back function. If the counter reaches
zero, the node is deleted from the linked-list and the corresponding interrupt bit is unmasked. This task is active as
long as the linked-list is not empty. If the linked-list is empty, it exits and waits for a pin from the ISR.
This demo is very useful for communication unit performance measurements.
7.4.2.4
Tips for Using
DemoInidev
•
Compile the VxWorks with O2 optimization flag.
•
Compile bootrom.hex to support CAS and RAS of 2. More details can be found in the BSP user manual in the
BSP features chapter.
•
Check the required communication flow and change the switching table to support this flow.
•
Configure the SmartBit ports to Auto-Negotiation. This guarantees that the Ethernet ports are set to full duplex
and 100 MB/s.
•
Perform the demo press ‘demoInidev’ after the vxWorks boot, and send traffic using SmartBits.
•
Performance is measured by dividing the Rx rate by the Tx rate in the SmartBits counters.
7.4.2.5
Relevant Documentation
•
AN-66: Initializing Ethernet Ports on the GT-642xx and GT-961xx Devices
•
AN-72: Operating the MPSC as a UART
•
BRG settings tool