PM5358 S/UNI-4x622 Driver Manual
Software Architecture
Proprietary and Confidential to PMC-Sierra, Inc. 15
Document ID: PMC-2010419, Issue 1
• Initialize the device(s)
• Perform diagnostic tests
• Validate configuration information
• Retrieve status and counts information
The driver API functions use the services of the other driver components to provide this system-
level functionality to the application programmer.
The driver API also consists of callback routines that are used to notify the application of
significant events that take place within the device(s) and module.
Real-Time OS Interface
The driver’s RTOS interface provides functions that let the driver use RTOS services. The driver
requires the memory, interrupt, and preemption services from the RTOS. The RTOS interface
functions perform the following tasks for the driver:
• Allocate and de-allocate memory
• Manage buffers for the ISR and the DPR
• Enable and disable preemption
The RTOS interface also includes service callbacks. These are functions installed by the driver
using RTOS service calls such as installing interrupts. These service callbacks are invoked when
an interrupt occurs.
Note: You must modify RTOS interface code to suit your RTOS.
Hardware Interface
The hardware interface provides functions that read from and write to the device registers. The
hardware interface also provides a template for an ISR that the driver calls when the device raises
a hardware interrupt. You must modify this function based on the interrupt configuration of your
system.
2.2 Main Components
Figure 2 illustrates the top level architectural components of the S/UNI-4x622 device driver. This
applies in both polled and interrupt driven operation. In polled operation the ISR is called
periodically. In interrupt operation the interrupt directly triggers the ISR.
The driver includes eight main components:
• Module and device(s) data-blocks
• Interrupt-service routine
• Deferred-processing routine