PM5358 S/UNI-4x622 Driver Manual
PM5358
S/UNI-4X622
DRIVER MANUAL
PROPRIETARY AND CONFIDENTIAL
PRELIMINARY
ISSUE 1: APRIL, 2001
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Legal Issues
None of the information contained in this document constitutes an express or implied warranty by
PMC-Sierra, Inc. as to the sufficiency, fitness or suitability for a particular purpose of any such
information or the fitness, or suitability for a particular purpose, merchantability, performance,
compatibility with other parts or systems, of any of the products of PMC-Sierra, Inc., or any
portion thereof, referred to in this document. PMC-Sierra, Inc. expressly disclaims all
representations and warranties of any kind regarding the contents or use of the information,
including, but not limited to, express and implied warranties of accuracy, completeness,
merchantability, fitness for a particular use, or non-infringement.
In no event will PMC-Sierra, Inc. be liable for any direct, indirect, special, incidental or
consequential damages, including, but not limited to, lost profits, lost business or lost data
resulting from any use of or reliance upon the information, whether or not PMC-Sierra, Inc. has
been advised of the possibility of such damage.
The information is proprietary and confidential to PMC-Sierra, Inc., and for its customers’
internal use. In any event, no part of this document may be reproduced in any form without the
express written consent of PMC-Sierra, Inc.
© 2001 PMC-Sierra, Inc.
PMC-2010419 (P1), ref PMC-2000459 (P2)
Contacting PMC-Sierra
PMC-Sierra
8555 Baxter Place Burnaby, BC
Canada V5A 4V7
Tel: (604) 415-6000
Fax: (604) 415-6200
Document Information: [email protected]
Corporate Information: [email protected]
Technical Support: [email protected]
Web Site: http://www.pmc-sierra.com
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
3
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
TABLE OF CONTENTS
About this Manual and S/UNI-4x622...................................................................................2
Audience....................................................................................................................2
References ................................................................................................................2
Revision History.........................................................................................................2
Legal Issues...............................................................................................................3
Contacting PMC-Sierra..............................................................................................3
Table of Contents.................................................................................................................4
List of Figures....................................................................................................................10
List of Tables......................................................................................................................11
1
2
Introduction .................................................................................................................13
Software Architecture..................................................................................................14
2.1 Driver External Interfaces ...........................................................................................14
Application Programming Interface .........................................................................14
Real-Time OS Interface...........................................................................................15
Hardware Interface ..................................................................................................15
2.2 Main Components.......................................................................................................15
Module Data-Block and Device(s) Data-Blocks ......................................................16
Interrupt-Service Routine.........................................................................................17
Deferred-Processing Routine ..................................................................................17
Alarms, Status and Counts ......................................................................................17
Section Overhead....................................................................................................18
Line Overhead .........................................................................................................18
Path Overhead.........................................................................................................18
Payload Processor...................................................................................................18
Interface Configuration ............................................................................................18
APS Configuration ...................................................................................................18
2.3 Software States...........................................................................................................19
Module States..........................................................................................................20
Device States...........................................................................................................20
2.4 Processing Flows........................................................................................................21
Module Management...............................................................................................21
Device Management................................................................................................21
2.5 Interrupt Servicing.......................................................................................................22
Calling suni4x622ISR ..............................................................................................23
Calling suni4x622DPR.............................................................................................24
Calling suni4x622Poll ..............................................................................................24
3
Data Structures ...........................................................................................................26
3.1 Constants....................................................................................................................26
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
4
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
3.2 Structures Passed by the Application .........................................................................26
Module Initialization Vector: MIV .............................................................................26
Device Initialization Vector: DIV...............................................................................27
ISR Enable/Disable Mask........................................................................................28
3.3 Structures in the Driver’s Allocated Memory...............................................................33
Module Data Block: MDB.........................................................................................33
Device Data Block: DDB..........................................................................................34
3.4 Structures Passed through RTOS Buffers ..................................................................50
Interrupt-Service Vector: ISV...................................................................................50
Deferred-Processing Vector: DPV...........................................................................50
3.5 Global Variable............................................................................................................51
4
Application Programming Interface.............................................................................52
4.1 Module Management ..................................................................................................52
Opening the Driver Module: suni4x622ModuleOpen ..............................................52
Closing the Driver Module: suni4x622ModuleClose................................................52
Starting the Driver Module: suni4x622ModuleStart .................................................53
Stopping the Driver Module: suni4x622ModuleStop................................................53
4.2 Profile Management....................................................................................................54
Adding an Initialization Profile: suni4x622AddInitProfile .........................................54
Getting an Initialization Profile: suni4x622GetInitProfile..........................................54
Deleting an Initialization Profile: suni4x622DeleteInitProfile ...................................55
4.3 Device Management...................................................................................................55
Adding a Device: suni4x622Add..............................................................................55
Deleting a Device: suni4x622Delete........................................................................56
Initializing a Device: suni4x622Init...........................................................................56
Updating the Configuration of a Device: suni4x622Update.....................................57
Resetting a Device: suni4x622Reset.......................................................................57
Activating a Device: suni4x622Activate...................................................................58
De-Activating a Device: suni4x622DeActivate ........................................................58
4.4 Device Read and Write...............................................................................................59
Reading from Device Registers: suni4x622Read....................................................59
Writing to Device Registers: suni4x622Write ..........................................................59
Reading from a block of Device Registers: suni4x622ReadBlock ..........................60
Writing to a Block of Device Registers: suni4x622WriteBlock.................................60
4.5 Section Overhead (SOH)............................................................................................61
Writing the J0 Byte: suni4x622SOHWriteJ0............................................................61
Reading and Setting the Section Trace Message :
suni4x622SOHTraceMsg..................................................................................62
Forcing A1 Error : suni4x622SOHForceA1..............................................................62
Forcing B1 Error: suni4x622SOHForceB1 ..............................................................63
Forcing OOF: suni4x622SOHForceOOF.................................................................63
Forcing LOS: suni4x622SOHForceLOS..................................................................64
4.6 Line Overhead (LOH)..................................................................................................64
Configuring SF Error Monitor: suni4x622LOHSFCfg ..............................................64
Configuring SD Error Monitor: suni4x622LOHSDCfg..............................................65
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
5
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Writing the K1K2 Byte: suni4x622LOHWriteK1K2 ..................................................65
Reading the K1K2 Byte: suni4x622LOHReadK1K2................................................66
Writing the S1 Byte: suni4x622LOHWriteS1 ...........................................................66
Reading the S1 Byte: suni4x622LOHReadS1.........................................................67
Forcing Line AIS: suni4x622LOHForceAIS .............................................................67
Forcing B2 Error: suni4x622LOHForceB2...............................................................67
Forcing Line RDI: suni4x622LOHForceRDI ............................................................68
4.7 Path Overhead (RPOH, TPOH)..................................................................................68
Retrieving and Setting the Path Trace Messages: suni4x622POHTraceMsg.........69
Writing the J1 Byte: suni4x622TPOHWriteJ1..........................................................69
Writing the C2 Byte: suni4x622TPOHWriteC2 ........................................................70
Writing the New Data Flag Bits: suni4x622TPOHWriteNDF ...................................70
Writing SS Bits: suni4x622TPOHWriteSS...............................................................71
Inserting a Pointer Value: suni4x622TPOHInsertTxPtr ...........................................71
Force Path BIP-8 Errors: suni4x622TPOHForceB3................................................71
Forcing Pointer Justification: suni4x622TPOHForcePJ ..........................................72
Forcing Path RDI: suni4x622TPOHForceRDI .........................................................72
Forcing Path ERDI: suni4x622TPOHForceERDI ....................................................73
Forcing Path ARDI: suni4x622TPOHForceARDI ....................................................73
Forcing Path AIS: suni4x622TPOHForceAIS..........................................................74
4.8 Payload Processor......................................................................................................74
Setting Payload configuration parameters: suni4x622PyldCfg ...............................74
4.9 Interface Configuration................................................................................................75
Resetting the Receive/Transmit FIFO: suni4x622FIFOReset.................................75
Configuring the Receive and Transmit FIFO: suni4x622FIFOCfg...........................75
Configuring the System interface: suni4x622SysIntfCfg .........................................76
Configuring the Device-Wide Line interface: suni4x622IntfLineCfg........................76
Resetting the TFCLK DLL: suni4x622IntfSysResetTDLL........................................77
Resetting the RFCLK DLL: suni4x622IntfSysResetRDLL.......................................77
4.10 Automatic Protection Configuration.........................................................................78
Configuring APS Working/Protect Mate: suni4x622APSCfg ...................................78
Configuring the Source Channel for the Given Channel Receive Path:
suni4x622RPCfg ...............................................................................................78
Configuring the Source Channel for the Given Channel Transmit Path:
suni4x622TPCfg................................................................................................79
Enable or disable the channel APS cross connect: suni4x622APSXcnntCfg .........79
Resetting APS Receive Link: suni4x622APSResetRxLink......................................79
Resetting APS Transmit Link: suni4x622APSResetTxLink .....................................80
4.11 Interrupt Service Functions......................................................................................80
Configuring ISR Processing: suni4x622ISRConfig .................................................81
Getting Device Interrupt Enable Mask: suni4x622GetMask....................................81
Setting Device Interrupt Enable Mask: suni4x622SetMask ....................................81
Clearing Device Interrupt Enable Mask: suni4x622ClrMask ...................................82
Getting SOH Interrupt Enable Mask: suni4x622GetMaskSOH...............................82
Setting SOH Interrupt Enable Mask: suni4x622SetMaskSOH................................83
Clearing SOH Interrupt Enable Mask: suni4x622ClrMaskSOH ..............................83
Getting LOH Interrupt Enable Mask: suni4x622GetMaskLOH................................84
Setting LOH Interrupt Enable Mask: suni4x622SetMaskLOH.................................84
Clearing LOH Interrupt Enable Mask: suni4x622ClrMaskLOH ...............................85
Getting RPOH Interrupt Enable Mask: suni4x622GetMaskRPOH..........................85
Setting RPOH Interrupt Enable Mask: suni4x622SetMaskRPOH...........................86
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
6
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Clearing RPOH Interrupt Enable Mask: suni4x622ClrMaskRPOH .........................86
Getting PYLD Interrupt Enable Mask: suni4x622GetMaskPYLD............................87
Setting PYLD Interrupt Enable Mask: suni4x622SetMaskPYLD.............................87
Clearing PYLD Interrupt Enable Mask: suni4x622ClrMaskPYLD ...........................88
Getting FIFO Interrupt Enable Mask: suni4x622GetMaskFIFO ..............................88
Setting FIFO Interrupt Enable Mask: suni4x622SetMaskFIFO...............................89
Clearing FIFO Interrupt Enable Mask: suni4x622ClrMaskFIFO..............................89
Getting Line Interface Interrupt Enable Mask: suni4x622GetMaskIntfLine.............90
Setting Line Interface Interrupt Enable Mask: suni4x622SetMaskIntfLine..............90
Clearing Line Interface Interrupt Enable Mask: suni4x622ClrMaskIntfLine ............91
Getting System Interface Interrupt Enable Mask: suni4x622GetMaskSysIntf.........91
Setting System Interface Interrupt Enable Mask: suni4x622SetMaskSysIntf .........92
Clearing System Interface Interrupt Enable Mask:
suni4x622ClrMaskSysIntf..................................................................................92
Getting APS Interrupt Enable Mask: suni4x622GetMaskAPS.................................93
Setting APS Interrupt Enable Mask: suni4x622SetMaskAPS .................................93
Clearing APS Interrupt Enable Mask: suni4x622ClrMaskAPS................................94
Polling the Interrupt Status Registers: suni4x622Poll..............................................94
Interrupt-Service Routine: suni4x622ISR ................................................................95
Deferred-Processing Routine: suni4x622DPR........................................................95
4.12 Alarm, Status and Counts Functions .......................................................................96
Getting the Device Status: suni4x622GetStatusChan.............................................96
Getting the Device Status: suni4x622GetStatusSOH..............................................96
Getting the Device Status: suni4x622GetStatusLOH ..............................................97
Getting the Device Status: suni4x622GetStatusRPOH ...........................................97
Getting the Device Status: suni4x622GetStatusIntfLine..........................................98
Getting the Device Status: suni4x622GetStatusPYLD ............................................98
Getting the Device Counts: suni4x622GetCountsChan ..........................................99
Getting the Device Counts: suni4x622GetCountsSOH...........................................99
Getting the Device Counts: suni4x622GetCountsLOH .........................................100
Getting the Device Counts: suni4x622GetCountsRPOH ......................................100
Getting the Device Counts: suni4x622GetCountsPYLD .......................................101
4.13 Device Diagnostics................................................................................................101
Testing Register Accesses: suni4x622DiagTestReg .............................................101
Enabling Line Loopbacks: suni4x622DiagLineLoop..............................................102
Enabling Path Diagnostic Loopbacks: suni4x622DiagPathLoop ..........................102
Enabling Data Diagnostic Loopbacks: suni4x622DiagDataLoop ..........................102
Enabling Parallel Diagnostics Loopbacks: suni4x622DiagParaLoop....................103
Enabling Serial Diagnostics Loopbacks: suni4x622DiagSerialLoop.....................103
4.14 Callback Functions ................................................................................................104
Notifying the Application of SOH Events: cbackSuni4x622SOH...........................104
Notifying the Application of LOH Events: cbackSuni4x622LOH............................105
Notifying the Application of RPOH Events: cbackSuni4x622RPOH......................105
Notifying the Application of PYLD Events: cbackSuni4x622PYLD........................106
Notifying the Application of SYSINTF Events: cbackSuni4x622SysIntf ................106
Notifying the Application of FIFO Events: cbackSuni4x622FIFO ..........................107
5
Hardware Interface ...................................................................................................108
5.1 Device I/O .................................................................................................................108
Reading from a Device Register: sysSuni4x622Read ..........................................108
Writing to a Device Register: sysSuni4x622Write .................................................108
Polling a Bit: sysSuni4x622PollBit.........................................................................109
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
7
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
5.2 System-Specific Interrupt Servicing..........................................................................109
Installing the ISR Handler: sysSuni4x622ISRHandlerInstall .................................109
ISR Handler: sysSuni4x622ISRHandler................................................................110
DPR Task: sysSuni4x622DPRTask .......................................................................110
Removing the ISR Handler: sysSuni4x622ISRHandlerRemove........................... 111
6
RTOS Interface .........................................................................................................112
6.1 Memory Allocation / De-Allocation............................................................................112
Allocating Memory: sysSuni4x622MemAlloc.........................................................112
Initialize Memory: sysSuni4x622MemSet..............................................................112
Copy Memory: sysSuni4x622MemCpy .................................................................112
Freeing Memory: sysSuni4x622MemFree ............................................................113
6.2 Buffer Management ..................................................................................................113
Starting Buffer Management: sysSuni4x622BufferStart ........................................113
Getting an ISV Buffer: sysSuni4x622ISVBufferGet...............................................114
Returning an ISV Buffer: sysSuni4x622ISVBufferRtn ...........................................114
Getting a DPV Buffer: sysSuni4x622DPVBufferGet..............................................114
Returning a DPV Buffer: sysSuni4x622DPVBufferRtn..........................................115
Stopping Buffer Management: sysSuni4x622BufferStop.......................................115
6.3 Timers .......................................................................................................................115
Sleeping a Task: sysSuni4x622TimerSleep...........................................................115
6.4 Preemption................................................................................................................116
Disabling Preemption: sysSuni4x622PreemptDisable ..........................................116
Re-Enabling Preemption: sysSuni4x622PreemptEnable......................................116
7
Porting the S/UNI-4x622 Driver ................................................................................117
7.1 Driver Source Files ...................................................................................................117
7.2 Driver Porting Procedures.........................................................................................117
Procedure 1: Porting Driver OS Extensions ..........................................................118
Procedure 2: Porting Drivers to Hardware Platforms ............................................119
Procedure 3: Porting Driver Application-Specific Elements...................................119
Procedure 4: Building the Driver............................................................................120
Appendix A: Coding Conventions....................................................................................121
Variable Type Definitions .......................................................................................121
Naming Conventions .............................................................................................121
Macros...................................................................................................................122
Constants...............................................................................................................122
Structures...............................................................................................................122
Functions ...............................................................................................................123
Variables ................................................................................................................123
File Organization....................................................................................................123
Appendix B: Error Codes.................................................................................................125
Appendix C: S/UNI-4x622 Events ...................................................................................126
Section Overhead Events (SOH)...........................................................................126
Line Overhead Events (LOH) ................................................................................126
Path Overhead Events (RPOH).............................................................................127
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
8
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Payload Events (PYLD).........................................................................................128
Line Interface Events (INTF_LINE) .......................................................................128
System Interface Events (SYS_INTF)...................................................................128
Automatic Protection Switching Events (APS) ......................................................129
List of Terms ....................................................................................................................130
Acronyms.........................................................................................................................131
Index................................................................................................................................132
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
9
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
LIST OF FIGURES
Figure 1: Driver External Interfaces...................................................................................14
Figure 2: Driver Architecture .............................................................................................16
Figure 3: Driver Software States .......................................................................................19
Figure 4: Module Management Flow Diagram..................................................................21
Figure 5: Device Management Flow Diagram...................................................................22
Figure 6: Interrupt Service Mode.......................................................................................23
Figure 7: Polling Service Model.........................................................................................25
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
10
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
LIST OF TABLES
Table 1: S/UNI-4x622 Module Initialization Vector: sSUNI4x622_MIV.............................27
Table 2: S/UNI-4x622 Device Initialization Vector: sSUNI4x622_DIV..............................27
Table 3: S/UNI-4x622 Section Overhead (SOH) ISR Mask:
sSUNI4x622_MASK_ISR_SOH ................................................................................29
Table 4: S/UNI-4x622 Line Overhead (LOH) ISR Mask:
sSUNI4x622_MASK_ISR_LOH.................................................................................29
Table 5: S/UNI-4x622 Receive Path Overhead (RPOH) ISR Mask:
sSUNI4x622_MASK__ISR_RPOH............................................................................30
Table 6: S/UNI-4x622 ISR Mask: sSUNI4x622_MASK_ISR_PYLD.................................31
Table 7: S/UNI-4x622 ISR Mask: sSUNI4x622_MASK_ISR_FIFO ..................................31
Table 8: S/UNI-4x622 Module Data Block: sSUNI4x622_MDB........................................33
Table 9: S/UNI-4x622 Device Data Block: sSUNI4x622_DDB .........................................34
Table 10: S/UNI-4x622 Input/Output Configuration: sSUNI4x622_CFG_GLOBAL..........36
Table 11: S/UNI-4x622 Channel Configuration: sSUNI4x622_CFG_CHAN.....................36
Table 12: S/UNI-4x622 Section Overhead Configuration:
sSUNI4x622_CFG_SOH...........................................................................................37
Table 13: S/UNI-4x622 Line Overhead Configuration: sSUNI4x622_CFG_LOH.............37
Table 14: S/UNI-4x622 Receive Path Overhead Configuration:
sSUNI4x622_CFG_RPOH ........................................................................................38
Table 15: S/UNI-4x622 Transmit Path Overhead Configuration:
sSUNI4x622_CFG_TPOH.........................................................................................38
Table 16: S/UNI-4x622 Payload Processor: sSUNI4x622_CFG_PYLD...........................40
Table 17: S/UNI-4x622 FIFO Configuration: sSUNI4x622_CFG_FIFO............................41
Table 18: S/UNI-4x622 Clock Interface Configuration: sSUNI4x622_CFG_CLK.............41
Table 19: S/UNI-4x622 Clock Interface Configuration:
sSUNI4x622_CFG_RALRM......................................................................................42
Table 20: S/UNI-4x622 Line Interface Configuration:
sSUNI4x622_CFG_INTF_LINE.................................................................................42
Table 21: S/UNI-4x622 Global System Interface Configuration:
sSUNI4x622_CFG_INTF_SYS_GLOBAL.................................................................43
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
11
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Table 22: S/UNI-4x622 Global Line Interface Configuration:
sSUNI4x622_CFG_INTF_LINE_GLOBAL................................................................44
Table 23: S/UNI-4x622 Signal Failure Configuration: sSUNI4x622_CFG_SF..................44
Table 24: S/UNI-4x622 Signal Defect Configuration: sSUNI4x622_CFG_SD..................44
Table 25: S/UNI-4x622 Channel Status Block: sSUNI4x622_STATUS_CHAN ...............45
Table 26: S/UNI-4x622 Section Overhead Status: sSUNI4x622_STATUS_SOH............45
Table 27: S/UNI-4x622 Line Overhead Status: sSUNI4x622_STATUS_LOH..................46
Table 28: S/UNI-4x622 Receive Path Overhead Processor Status:
sSUNI4x622_STATUS_RPOH..................................................................................46
Table 29: S/UNI-4x622 Clock Status: sSUNI4x622_STATUS_CLK.................................47
Table 30: S/UNI-4x622 Line Interface Status: sSUNI4x622_STATUS_INTF_LINE.........48
Table 31: S/UNI-4x622 Counters: sSUNI4x622_CNTR_CHAN .......................................48
Table 32: S/UNI-4x622 Section Overhead (SOH) Counters:
sSUNI4x622_CNTR_SOH ........................................................................................48
Table 33: S/UNI-4x622 Line Overhead (LOH) Counters:
sSUNI4x622_CNTR_LOH.........................................................................................49
Table 34: S/UNI-4x622 Receive Path Overhead (RPOH) Counters:
sSUNI4x622_CNTR_RPOH......................................................................................49
Table 35: S/UNI-4x622 Payload Processor Counters: sSUNI4x622_CNTR_PYLD.........49
Table 36: S/UNI-4x622 Interrupt-Service Vector: sSUNI4x622_ISV ................................50
Table 37: S/UNI-4x622 Deferred-Processing Vector: sSUNI4x622_DPV ........................51
Table 38: Variable Type Definitions ................................................................................121
Table 39: Naming Conventions.......................................................................................121
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
12
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Introduction
1 INTRODUCTION
The following sections of the S/UNI-4x622 Device Driver Design Specification describe the
S/UNI-4x622 device driver. The code provided throughout this document is written in ANSI-C.
This has been done to promote greater driver portability to other embedded hardware (Section 5)
and Real-Time Operating System (RTOS) environments (Section 6).
Section 2 of this document, Software Architecture, defines the software architecture of the
S/UNI-4x622 device driver by including a discussion of the driver’s external interfaces and its
main components. The Data Structure information in Section 3 describes the elements of the
driver that either configure or control its behavior. Included here are the constants, variables, and
structures that the S/UNI-4x622 device driver uses to store initialization, configuration, and status
information. Section 4 provides a detailed description of each function that is a member of the
S/UNI-4x622 driver Application Programming Interface (API). This section outlines function
calls that hide device-specific details and application callbacks that notify the user of significant
device events.
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
13
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Software Architecture
2 SOFTWARE ARCHITECTURE
This section describes the software architecture of the S/UNI-4x622 device driver. This includes a
discussion of the driver’s external interfaces and its main components.
2.1 Driver External Interfaces
Figure 1 illustrates the external interfaces defined for the S/UNI-4x622 device driver.
Figure 1: Driver External Interfaces
Application
Function Calls
Application Callbacks
Service Callbacks
S/UNI-4x622 Device Driver
RTOS
Service Calls
Register
Accesses
Hardware
Interrupts
S/UNI-4x622 Devices
Application Programming Interface
The driver Application Programming Interface (API) is a list of high-level functions that can be
invoked by application programmers to configure, control and monitor S/UNI-4x622 devices.
The API functions perform operations that are more meaningful from a system’s perspective. The
API includes functions such as:
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
14
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Software Architecture
•
•
•
•
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
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
15
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Software Architecture
•
•
•
•
•
•
•
Alarm, status and counts
Section Overhead
Line Overhead
Path Overhead
Payload Processor
Interface Configuration
APS Configuration
Figure 2: Driver Architecture
Application
Function
Calls
Application
Callbacks
Driver API
APS Configuration
Alarm, Status &
Statistics
Deferred
Processing
Routine
Section Overhead
Line Overhead
Diagnostics
Module
Data Block
Interrupt
Context
Path Overhead
Device Data Blocks
Interrupt
Service
Routine
Payload Processor
Interface Configuration
.......
Hardware Interface
Hardware
Interrupts
Register
Accesses
S/UNI-4x622 Devices
Module Data-Block and Device(s) Data-Blocks
The Module Data-Block (MDB) is the top layer data structure, created by the S/UNI-4x622 driver
to store context information about the driver module, such as:
•
Module state
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
16
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Software Architecture
•
•
Maximum number of devices
The DDB(s)
The Device Data-Block (DDB) is contained in the MDB, and initialized by the driver module for
each S/UNI-4x622 device that is registered. There is one DDB per device and there is a limit on
the number of DDBs, and that limit is set by the USER when the module is initialized. The DDB
is used to store context information about one device, such as:
•
•
•
•
Device state
Control information
Initialization parameters
Callback function pointers
Interrupt-Service Routine
The S/UNI-4x622 driver provides an ISR called suni4x622ISR that checks if there is any valid
interrupt condition present for the device. This function can be used by a system-specific
interrupt-handler function to service interrupts raised by the device.
The low-level interrupt-handler function that traps the hardware interrupt and calls
suni4x622ISR is system and RTOS dependent. Therefore, it is outside the scope of the driver.
Example implementations of an interrupt handler and functions that install and remove it are
provided as a reference in section 5.2. You can customize these example implementations to suit
your specific needs.
See section 2.5 for a detailed explanation of the ISR and interrupt-servicing model.
Deferred-Processing Routine
The S/UNI-4x622 driver provides a DPR called suni4x622DPR that processes any interrupt
condition gathered by the ISR for that device. Typically, a system specific function, which runs as
a separate task within the RTOS, will call suni4x622DPR.
Example implementations of a DPR task and functions that install and remove it are provided as a
reference in section 5.2. You can customize these example implementations to suit your specific
needs.
See section 2.5 for a detailed explanation of the DPR and interrupt-servicing model.
Alarms, Status and Counts
The alarm, status and counts section is responsible for monitoring alarms, tracking devices status
information and retrieving counts for each device registered with (added to) the driver.
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
17
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Software Architecture
Section Overhead
The Section Overhead section provides functions to control and monitor the section overhead
processing. Read / Write access is given to the section trace message (J0). This message is
compared with a configurable reference and mismatches are reported. Section BIP-8 (B1) errors
are accumulated in a counter that can be read. Section overhead alarms are detected and reported.
For diagnostic purposes, errors can be introduced in the section overhead bytes.
Line Overhead
The Line Overhead section provides functions to configure and monitor the line overhead on both
the receive and transmit sides. Read / Write access is given to the APS bytes (K1 and K2) and
most other overhead bytes. Line BIP-8 (B2) errors are accumulated in a counter that can be read.
Line overhead alarms are detected and reported. For diagnostic purposes, errors can be introduced
in the line overhead bytes. Additional functions are provided to automatically insert line RDI and
line AIS.
Path Overhead
The Path Overhead section provides functions to configure and monitor the path overhead on
both the receive and transmit sides. Read / Write access is given to the path trace message (J1)
and the path signal label (C2). Both are compared with a configurable reference and mismatches
are reported. Path BIP-8 (B3) errors and REI are accumulated in a counter that can be read. Path
overhead alarms are detected and reported. For diagnostic purposes, errors can be introduced in
the path overhead bytes. Additional functions are provided to automatically insert path AIS, and
force generation of individual outgoing justification events.
Payload Processor
The Payload Processor section provides functions to configuring the payload for ATM or POS
processing. Function is provided to configure ATM/POS processing.
Interface Configuration
The Interface Configuration section provides functions to configure the FIFO, line and system
side interface for ATM or POS mode. Functions are provided for FIFO management to separate
the line side timing from the higher layer ATM/POS link layer timing. The Line interface is
responsible for receive/transmit line clock configuration. The System interface is responsible for
configuring the system to UTOPIA Level 3 or POS-PHY Level 3 interface for either ATM or POS
application.
APS Configuration
The APS Configuration section provides function to configure the operating mode for the device
to either a protect or working mate in a APS failover condition.
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
18
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Software Architecture
2.3 Software States
Figure 3 shows the software state diagram for the S/UNI-4x622 driver. State transitions occur on
the successful execution of the corresponding transition functions shown. State information helps
maintain the integrity of the MDB and DDB(s) by controlling the set of operations allowed in
each state.
Figure 3: Driver Software States
suni4x622ModuleOpen
Idle
Start
suni4x622ModuleClose
suni4x622ModuleStop
suni4x622ModuleClose
suni4x622ModuleStart
Ready
MODULE STATES
Start
suni4x622Add
suni4x622Delete
Present
suni4x622Reset
suni4x622Reset
suni4x622Init
suni4x622Activate
Inactive
Active
suni4x622DeActivate
PER-DEVICE STATES
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
19
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Software Architecture
Module States
The following is a description of the S/UNI-4x622 module states. See section 4.1 for a detailed
description of the API functions that are used to change the module state.
Start
The driver module has not been initialized. In this state the driver does not hold any RTOS
resources (memory, timers, etc); has no running tasks, and performs no actions.
Idle
The driver module has been initialized successfully. The Module Initialization Vector (MIV) has
been validated, the Module Data Block (MDB) has been allocated and loaded with current data,
the per-device data structures have been allocated, and the RTOS has responded without error to
all the requests sent to it by the driver.
Ready
This is the normal operating state for the driver module. This means that all RTOS resources have
been allocated and the driver is ready for devices to be added. The driver module remains in this
state while devices are in operation.
Device States
The following is a description of the S/UNI-4x622 per-device states. The state that is mentioned
here is the software state as maintained by the driver, and not as maintained inside the device
itself. See section 4.3 for a detailed description of the API functions that are used to change the
per-device state.
Start
The device has not been initialized. In this state the device is unknown by the driver and performs
no actions. There is a separate flow for each device that can be added, and they all start here.
Present
The device has been successfully added. A Device Data Block (DDB) has been associated to the
device and updated with the user context, and a device handle has been given to the USER. In this
state the device performs no actions.
Inactive
In this state the device is configured but all data functions are de-activated including interrupts
and alarms, as well as status and counts functions.
Active
This is the normal operating state for the device. In this state, interrupt servicing or polling is
enabled.
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
20
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Software Architecture
2.4 Processing Flows
This section describes the main processing flows of the S/UNI-4x622 driver components.
The flow diagrams presented here illustrate the sequence of operations that take place for
different driver functions. The diagrams also serve as a guide to the application programmer by
illustrating the sequence in which the application must invoke the driver API.
Module Management
The following diagram illustrates the typical function call sequences that occur when initializing
or shutting down the S/UNI-4x622 driver module.
Figure 4: Module Management Flow Diagram
START
Performs module level initialization of the driver. Validates the Module
Initialization Vector (MIV). Allocates memory for the MDB and all its
components (i.e. all the memory needed by the driver) and then initializes
suni4x622ModuleOpen
the contents of the MDB with the validated MIV.
Performs module level startup of the driver. This involves allocating RTOS
suni4x622ModuleStart
suni4x622AddInitProfile
resources such as semaphores and timers and installing the ISR handler
and DPR task.
Register an initialization profile. This allows the user to store pre-defined
parameter vectors that are validated ahead of time. When the device-
initialization function is invoked only a profile number need to be passed.
This method simplifies and expedites the above operations.
Perform all device level functions here (add, init, activate, de-activate,
reset, delete,...)
De-register an initialization profile previously registered with the driver.
suni4x622DeleteInitProfile
Performs Module level shutdown of the driver. This involves deleting all
devices currently installed and de-allocating all timers and semaphores as
well as removing the ISR handler and DPR task.
suni4x622ModuleStop
suni4x622ModuleClose
Performs module level shutdown of the driver. De-allocates all the driver's
memory.
END
Device Management
The following figure shows the typical function call sequences that the driver uses to add,
initialize, re-initialize, and delete the S/UNI-4x622 device.
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
21
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Software Architecture
Figure 5: Device Management Flow Diagram
START
Detects the new device in hardware, assigns a DDB to the new device
andstores the user's context for the device. Returns a device handle to
the user
suni4x622Add
suni4x622Init
Applies a reset to the device and initializes the device registers
and associated RAMs based on the DIV passed by the user. The
user may only pass a profile number, which corresponds to a
previously saved & validated set of configurations (by using
suni4x622AddInitProfile
)
Prepares the device for normal operation by enabling interrupts and
other global enables. ISR routines are installed when the module is
started using sysSuni4x622ISRHandlerInstall. The device is now
operational and all other API can be invoked.
suni4x622Activate
In order to re-initialize the device, reset the device using
suni4x622Reset and go through the initialization sequence
again.
suni4x622Reset
De-activates the device and removes it from normal operation.
This involves disabling the device interrupts. ISR routines for this
device are removed usingsysSuni4x622ISRHandlerRemove
when the module is closed.
suni4x622DeActivate
suni4x622Reset
Applies a software reset to the device to put it in its default startup
state.
Removes the device from the list of devices being controlled by the
S/UNI-4x622 driver. This function de-allocates the device context
information for the device being deleted.
suni4x622Delete
END
2.5 Interrupt Servicing
The S/UNI-4x622 driver services device interrupts using an Interrupt-Service Routine (ISR) that
traps interrupts, and a Deferred-Processing Routine (DPR) that actually processes the interrupt
conditions and clears them. This lets the ISR execute quickly and exit. Most of the
time-consuming processing of the interrupt conditions is deferred to the DPR by queuing the
necessary interrupt-context information to the DPR task. The DPR function runs in the context of
a separate task within the RTOS.
Note: Since the DPR task processes potentially serious interrupt conditions, you should set the
DPR task’s priority higher than the application task interacting with the S/UNI-4x622 driver.
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
22
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Software Architecture
The driver provides system-independent functions, suni4x622ISR and suni4x622DPR. You
must fill in the corresponding system-specific functions, sysSuni4x622ISRHandler and
sysSuni4x622DPRTask. The system-specific functions isolate the system-specific
communication mechanism (between the ISR and DPR) from the system-independent functions,
suni4x622ISR and suni4x622DPR.
Figure 6 illustrates the interrupt service model used in the S/UNI-4x622 driver design.
Figure 6: Interrupt Service Mode
Interrupt
Indication
Callbacks
sysSuni4x622ISRHandler
Context
Information
sysSuni4x622DPRTask
Application
suni4x622ISR
suni4x622DPR
Note: Instead of using an interrupt service model, you can use a polling service model in the
S/UNI-4x622 driver to process the device’s event-indication registers (see page 26).
Calling suni4x622ISR
An interrupt handler function, which is system dependent, must call suni4x622ISR. But first,
the low-level interrupt-handler function must trap the device interrupts. You must implement this
function to fit your own system. As a reference, an example implementation of the interrupt
handler (sysSuni4x622ISRHandler) appears on page 110. You can customize this example
implementation to suit your needs.
The interrupt handler that you implement (sysSuni4x622ISRHandler) is installed in the
interrupt vector table of the system processor. It is called when one or more S/UNI-4x622 devices
interrupt the processor. The interrupt handler then calls suni4x622ISR for each device in the
active state that has interrupt processing enabled.
The suni4x622ISR function reads from the master interrupt-status registers and the
miscellaneous interrupt-status registers of the S/UNI-4x622. If at least one valid interrupt
condition is found then suni4x622ISR fills an Interrupt-Service Vector (ISV) with this status
information as well as the current device handle. The suni4x622ISR function also clears and
disables all the device’s interrupts detected. The sysSuni4x622ISRHandler function is then
responsible to send this ISV buffer to the DPR task.
Note: Normally you should save the status information for deferred processing by implementing a
message queue. The interrupt handler sends the status information to the queue by the
sysSuni4x622ISRHandler.
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
23
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Software Architecture
Calling suni4x622DPR
The sysSuni4x622DPRTask function is a system specific function that runs as a separate task
within the RTOS. You should set the DPR task’s priority higher than the application task(s)
interacting with the S/UNI-4x622 driver. In the message-queue implementation model, this task
has an associated message queue. The task waits for messages from the ISR on this message
queue. When a message arrives, sysSuni4x622DPRTask calls the DPR (suni4x622DPR) with
the received ISV.
Then suni4x622DPR processes the status information and takes appropriate action based on the
specific interrupt condition detected. The nature of this processing can differ from system to
system. Therefore, suni4x622DPR calls different indication callbacks for different interrupt
conditions.
Typically, you should implement these callback functions as simple message posting functions
that post messages to an application task. However, you can implement the indication callback to
perform processing within the DPR task context and return without sending any messages. In this
case, ensure that this callback function does not call any API functions that would change the
driver’s state, such as suni4x622Delete. Also, ensure that the callback function is
non-blocking because the DPR task executes while S/UNI-4x622 interrupts are disabled. You can
customize these callbacks to suit your system. See page 103 for example implementations of the
callback functions.
Note: Since the suni4x622ISR and suni4x622DPR routines themselves do not specify a
communication mechanism, you have full flexibility in choosing a communication mechanism
between the two. A convenient way to implement this communication mechanism is to use a
message queue, which is a service that most RTOSs provide.
You must implement the two system specific functions, sysSuni4x622ISRHandler and
sysSuni4x622DPRTask. When the driver calls sysSuni4x622ISRHandlerInstall, the
application installs sysSuni4x622ISRHandler in the interrupt vector table of the processor,
and the sysSuni4x622DPRTask function is spawned as a task by the application. The
sysSuni4x622ISRHandlerInstall function also creates the communication channel between
sysSuni4x622ISRHandler and sysSuni4x622DPRTask. This communication channel is
most commonly a message queue associated with the sysSuni4x622DPRTask.
Similarly, during removal of interrupts, the driver removes sysSuni4x622ISRHandler from
the microprocessor’s interrupt vector table and deletes the task associated with
sysSuni4x622DPRTask.
As a reference, this manual provides example implementations of the interrupt installation and
removal functions on pages 109 and 111. You can customize these prototypes to suit your specific
needs.
Calling suni4x622Poll
Instead of using an interrupt service model, you can use a polling service model in the S/UNI-
4x622 driver to process the device’s event-indication registers.
Figure 7 illustrates the polling service model used in the S/UNI-4x622 driver design.
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
24
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Software Architecture
Figure 7: Polling Service Model
Indication
Callbacks
suni4x622Poll
Interrupt Context
Information
Application
suni4x622ISR
suni4x622DPR
In polling mode, the application is responsible for calling suni4x622Poll often enough to
service any pending error or alarm conditions. When suni4x622Poll is called, the
suni4x622ISR function is called internally.
The suni4x622ISR function reads from the master interrupt-status registers and the
miscellaneous interrupt-status registers of the S/UNI-4x622. If at least one valid interrupt
condition is found then suni4x622ISR fills an Interrupt-Service Vector (ISV) with this status
information as well as the current device handle. In polling mode, this ISV buffer is passed to the
DPR task by calling suni4x622DPR internally.
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
25
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
3 DATA STRUCTURES
This section describes the elements of the driver that configure or control its behavior, and should
therefore be of interest to the application programmer. Included here are the constants, variables
and structures that the S/UNI-4x622 device driver uses to store initialization, configuration and
counts information. The channel number starts from 0. The structure contains arrays of four
elements, where index 0 corresponds to the first channel and index 3 corresponds to the fourth
channel. For more information on our naming convention, the reader is referred to Appendix A
(page 121).
3.1 Constants
The following Constants are used throughout the driver code:
•
<S/UNI-4x622 ERROR CODES>: error codes used throughout the driver code, returned by
the API functions and used in the global error number field of the MDB and DDB. For a
complete list of error codes, see Appendix B (page 125).
•
SUNI4x622_MAX_DEVS: defines the maximum number of devices that can be supported by
this driver. This constant must not be changed without a thorough analysis of the
consequences to the driver code
•
•
SUNI4x622_MOD_START, SUNI4x622_MOD_IDLE, SUNI4x622_MOD_READY: the three
possible module states (stored in stateModule)
SUNI4x622_START, SUNI4x622_PRESENT, SUNI4x622_ACTIVE,
SUNI4x622_INACTIVE: the four possible device states (stored in stateDevice)
3.2 Structures Passed by the Application
These structures are defined for use by the application and are passed as argument to functions
within the driver. These structures are the Module Initialization Vector (MIV), the Device
Initialization Vector (DIV) and the ISR mask.
Module Initialization Vector: MIV
Passed via the suni4x622ModuleOpen call, this structure contains all the information needed
by the driver to initialize and connect to the RTOS.
•
maxDevs is used to inform the driver how many devices will be operating concurrently
during this session. The number is used to calculate the amount of memory that will be
allocated to the driver. The maximum value that can be passed is SUNI4x622_MAX_DEVS
(see section 3.1).
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
26
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Table 1: S/UNI-4x622 Module Initialization Vector: sSUNI4x622_MIV
Field Name
Field Type Field Description
perrModule
INT4 *
UINT2
(pointer to) errModule (see description in the MDB)
Maximum number of devices supported during this session
Maximum number of initialization profiles
maxDevs
maxInitProfs UINT2
Device Initialization Vector: DIV
Passed via the suni4x622Init call, this structure contains all the information needed by the
driver to initialize a S/UNI-4x622 device. This structure is also passed via the
suni4x622SetInitProfile call when used as an initialization profile.
•
•
valid indicates that this initialization profile has been properly initialized and may be used
by the USER. This field should be ignored when the DIV is passed directly.
pollISR is a flag that indicates the type of interrupt servicing the driver is to use. The
choices are ‘polling’ (SUNI4x622_POLL_MODE), and ‘interrupt driven’
(SUNI4x622_ISR_MODE). When configured in polling the interrupt capability of the device
is NOT used, and the USER is responsible for calling suni4x622Poll periodically. The
actual processing of the event information is the same for both modes.
•
cbackSOH, cbackLOH, cbackRPOH, cbackPYLD, cbackFIFO, cbackIntfSys,
cbackIntfLine and cbackAPS are used to pass the address of application functions that
will be used by the DPR to inform the application code of pending events. If these fields are
set as NULL, then any events that might cause the DPR to ‘call back’ the application will be
processed during ISR processing but ignored by the DPR.
Table 2: S/UNI-4x622 Device Initialization Vector: sSUNI4x622_DIV
Field Name
Field Type
Field Description
valid
UINT2
Indicates that this structure is valid
Indicates the type of ISR / polling to do
pollISR
eSUNI4x622_ISR_MODE
sSUNI4x622_CBACK
cbackSOH
Address for the callback function for SOH
events
cbackLOH
sSUNI4x622_CBACK
sSUNI4x622_CBACK
Address for the callback function for LOH
events
cbackRPOH
Address for the callback function for
RPOH events
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
27
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Field Name
Field Type
Field Description
cbackPYLD
sSUNI4x622_CBACK
Address for the callback function for
PYLD events
cbackFIFO
sSUNI4x622_CBACK
Address for the callback function for FIFO
events
cbackIntfLine sSUNI4x622_CBACK
Address for the callback function for Line
Interface events
cbackIntfSys
cbackAPS
sSUNI4x622_CBACK
sSUNI4x622_CBACK
Address for the callback function for
System Interface events
Address for the callback function for APS
events
cfgGlobal
sSUNI4x622_CFG_GLOBAL
sSUNI4x622_CFG_CHAN
Global configuration block
cfgChan[4]
Channel configuration block (4 channels
per device)
ISR Enable/Disable Mask
Passed via the suni4x622SetMask, suni4x622GetMask and suni4x622ClrMask calls, this
structure contains all the information needed by the driver to enable and disable any of the
interrupts in the S/UNI-4x622.
Table 3: S/UNI-4x622 ISR Mask: sSUNI4x622_MASK_ISR
Field Name
Field Type
Field Description
maskIntfSys
sSUNI4x622_MASK_ISR
_INTF_SYS
Interrupt mask for System Interface
maskChan[4]
maskAPS[4]
sSUNI4x622_MASK_ISR
_CHAN
Interrupt mask for each channel (4 channels
per device)
sSUNI4x622_MASK_ISR
_APS
Interrupt mask for each channel in the APS
link (4 APS channels per device)
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
28
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Table 4: S/UNI-4x622 ISR Mask: sSUNI4x622_MASK_ISR_CHAN
Field Name
Field Type
Field Description
maskSOH
sSUNI4x622_MASK_ISR_
SOH
Interrupt mask for Section Overhead section
Interrupt mask for Line Overhead section
maskLOH
sSUNI4x622_MASK_ISR_
LOH
maskRPOH
sSUNI4x622_MASK_ISR_
RPOH
Interrupt mask for Receive Path Overhead
section
maskPYLD
maskFIFO
sSUNI4x622_MASK_ISR_
PYLD
Interrupt mask for Payload Processor section
sSUNI4x622_MASK_ISR_
FIFO
Interrupt mask for FIFO Configuration
section
maskIntfLine sSUNI4x622_MASK_ISR_
INTF_LINE
Interrupt mask for Line Interface section
Table 3: S/UNI-4x622 Section Overhead (SOH) ISR Mask: sSUNI4x622_MASK_ISR_SOH
Field Name
oof
Field Type
UINT2
Field Description
Out of frame
lof
UINT2
Loss of frame
los
UINT2
Loss of signal
sbipe
tiu
UINT2
Section BIP error
Section trace unstable
Section trace mismatch
UINT2
tim
UINT2
Table 4: S/UNI-4x622 Line Overhead (LOH) ISR Mask: sSUNI4x622_MASK_ISR_LOH
Field Name
lais
Field Type
UINT2
Field Description
Line alarm signal
Line remote defect
lrdi
UINT2
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
29
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Field Name
psbf
Field Type
UINT2
Field Description
APS byte failure
coaps
UINT2
Change of APS bytes
Change of synchronization status message
Line BIP error
coz1s1
lbipe
UINT2
UINT2
lreie
UINT2
Line REI error
sdber
UINT2
Signal Defect
sfber
UINT2
Signal Failure
Table 5: S/UNI-4x622 Receive Path Overhead (RPOH) ISR Mask:
sSUNI4x622_MASK__ISR_RPOH
Field Name
tiu
Field Type
UINT2
UINT2
UINT2
UINT2
UINT2
UINT2
UINT2
UINT2
UINT2
UINT2
UINT2
UINT2
UINT2
UINT2
Field Description
Path trace unstable
tim
Path trace mismatch
prpslmi
prpslui
prdi
Path signal label mismatch
Path signal label unstable
Path remote defect indication
Path enhanced remote defect indication
Path BIP-8 error
perdi
pbipe
pfebe
pais
Path REI error
Path AIS state changes
ppse
Positive Pointer Justification
Negative Pointer Justification
Path Loss of pointer state changes
AuxRDI state changes
pnse
ploptr
ardi
uneq
Trace identifier equipped state changes
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
30
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Field Name
psl
Field Type
UINT2
UINT2
UINT2
UINT2
UINT2
UINT2
UINT2
UINT2
UINT2
Field Description
Path signal label changed
Pointer AIS event
aisc
lopc
Lost of pointer concatenation change
New pointer received
Illegal Pointer Justification
Discontinuous change of pointer
Invalid NDF
newptr
illjreq
discopa
invndf
illptr
ndf
Illegal pointer
NDF event
Table 6: S/UNI-4x622 ISR Mask: sSUNI4x622_MASK_ISR_PYLD
Field Name
Field Type
Field Description
lcd
UINT2
Change in loss of cell delineation
hcs
UINT2
UINT2
UINT2
UINT2
UINT2
UINT2
UINT2
UINT2
Detection of corrected or uncorrected HCS error
Detection of FCS error
fcs
rxcpxfer
txcpxfer
abrt
Transfer of received CP accumulated interval complete
Transfer of transmit CP accumulated counter data completed
Reception of aborted packet
maxl
Reception of packet exceeding maximum packet length
Reception of packet below minimum packet length
Change in cell delineation state
minl
oocd
Table 7: S/UNI-4x622 ISR Mask: sSUNI4x622_MASK_ISR_FIFO
Field Name
Field Type
Field Description
rxcpfovr
UINT2
Rx CP FIFO overrun
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
31
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Field Name
rxfpfovr
txfpfudr
Field Type
UINT2
Field Description
Rx FP FIFO overrun
Tx FP FIFO underrun
UINT2
Table 10: S/UNI-4x622 ISR Mask: sSUNI4x622_MASK_ISR_INTF_LINE
Field Name
wansinten
lot
Field Type
UINT2
Field Description
WANS phase detector averaging period has begun
Loss of transition
UINT2
rool
UINT2
Recovered reference out of lock
Recovered data out of lock
dool
UINT2
Table11: S/UNI-4x622 ISR Mask: sSUNI4x622_MASK_ISR_INTF_SYS
Field Name Field Type Field Description
txop
UINT2
TSOP or TSEP is not asserted with the first or last word of a
POS-PHY packet
unprov
UINT2
Detection of non-existent channel buffer during in-band
addressing
cam
UINT2
UINT2
UINT2
UINT2
UINT2
Data field mismatch
Tx Parity error
tprty
tsoc
fovr
funr
Start of cell re-alignment
TUL3 FIFO overrun
RUL3 FIFO underrun
Table12: S/UNI-4x622 ISR Mask: sSUNI4x622_MASK_ISR_APS
Field Name
bip
Field Type
UINT2
Field Description
BIP-8 error
los
UINT2
Loss of signal
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
32
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Field Name
lof
Field Type
UINT2
Field Description
Los of frame
oof
UINT2
Out of frame
lot
UINT2
Loss of transition
dool
rool
ese
UINT2
Recovered data out of lock
Recovered reference out of lock
Elastic store FIFO error
Pointer Justification
UINT2
UINT2
pj
UINT2
3.3 Structures in the Driver’s Allocated Memory
These structures are defined and used by the driver and are part of the context memory allocated
when the driver is opened. These structures are the Module Data Block (MDB), the Device Data
Block (DDB).
Module Data Block: MDB
The MDB is the top-level structure for the module. It contains configuration data about the
module level code and pointers to configuration data about the device level codes.
•
errModule most of the module API functions return a specific error code directly. When the
returned code is SUNI4x622_FAILURE, this indicates that the top-level function was not able
to carry the specified error code back to the application. Under those circumstances, the
proper error code is recorded in this element. The element is the first in the structure so that
the USER can cast the MDB pointer into a INT4 pointer and retrieve the local error (this
eliminates the need to include the MDB template into the application code).
•
•
valid indicates that this structure has been properly initialized and may be read by the
USER.
stateModule contains the current state of the module and could be set to:
SUNI4x622_MOD_START, SUNI4x622_MOD_IDLE or SUNI4x622_MOD_READY.
Table 8: S/UNI-4x622 Module Data Block: sSUNI4x622_MDB
Field Name
errModule
valid
Field Type
INT4
Field Description
Global error Indicator for module calls
Indicates that this structure has been
UINT2
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
33
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Field Name
Field Type
Field Description
initialized
stateModule
eSUNI4x622_MOD_STATE
Module state; can be one of the following
IDLE or READY
maxDevs
numDevs
UINT2
UINT2
Maximum number of devices supported
Number of devices currently registered
Maximum number of initialization profiles
maxInitProfs UINT2
pddb
sSUNI4x622_DDB *
(array of) Device Data Blocks (DDB) in
context memory
pinitProfs
sSUNI4x622_DIV *
(array of) Initialization profiles in context
memory
Device Data Block: DDB
The DDB is the top-level structure for each device. It contains configuration data about the device
level code and pointers to configuration data about device level sub-blocks.
•
errDevice most of the device API functions return a specific error code directly. When the
returned code is SUNI4x622_FAILURE, this indicates that the top-level function was not able
to carry the specific error code back top the application. In addition, some device functions do
not return an error code. Under those circumstances, the proper error code is recorded in this
element. The element is the first in the structure so that the USER can cast the DDB pointer
to a INT4 pointer and retrieve the local error (this eliminates the need to include the DDB
template in the application code).
•
•
valid indicates that this structure has been properly initialized and may be read by the
USER.
stateDevice contains the current state of the device and could be set to:
SUNI4x622_START, SUNI4x622_PRESENT, SUNI4x622_ACTIVE or
SUNI4x622_INACTIVE.
•
usrCtxt is a value that can be used by the USER to identify the device during the execution
of the callback functions. It is passed to the driver when suni4x622Add is called and
returned to the USER in the DPV when a callback function is invoked. The element is unused
by the driver itself and may contain any value.
Table 9: S/UNI-4x622 Device Data Block: sSUNI4x622_DDB
Field Name
errDevice
valid
Field Type
INT4
Field Description
Global error indicator for device calls
Indicates that this structure has been
UINT2
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
34
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Field Name
Field Type
Field Description
initialized
stateDevice
eSUNI4x622_DEV_STATE
Device State; can be one of the following
PRESENT, ACTIVE or INACTIVE
baseAddr
usrCtxt
void *
Base address of the device
sSUNI4x622_USR_CTXT
Stores the user’s context for the device. It
is passed as an input parameter when the
driver invokes an application callback
profileNum
pollISR
UINT2
Profile number used at initialization
eSUNI4x622_ISR_MODE
sSUNI4x622_CBACK
Indicates the current type of ISR / polling
cbackSOH
Address for the callback function for SOH
events
cbackLOH
cbackRPOH
cbackPYLD
cbackFIFO
sSUNI4x622_CBACK
sSUNI4x622_CBACK
sSUNI4x622_CBACK
sSUNI4x622_CBACK
Address for the callback function for LOH
events
Address for the callback function for
RPOH events
Address for the callback function for
PYLD events
Address for the callback function for FIFO
events
cbackIntfLine sSUNI4x622_CBACK
Address for the callback function for Line
Interface events
cbackIntfSys
cbackAPS
sSUNI4x622_CBACK
sSUNI4x622_CBACK
Address for the callback function for
System Interface events
Address for the callback function for APS
events
cfgGlobal
sSUNI4x622_CFG_GLOBAL
sSUNI4x622_CFG_CHAN
Global configuration block
cfgChan[4]
Channel configuration block ( 4 channels
per device)
mask
sSUNI4x622_MASK_ISR
Interrupt Enable Mask
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
35
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Device-wide Global Configuration
Table 10: S/UNI-4x622 Input/Output Configuration: sSUNI4x622_CFG_GLOBAL
Field Name
sonetsel
Field Type
Field Description
UINT1
Select SONET/SDH mode
cfgIntfSys
sSUNI4x622_CFG_INTF_SYS_GLOBAL
System Interface configuration
block
cfgIntfLine
sSUNI4x622_CFG_INTF_LINE_GLOBAL
Line Interface configuration
block
Per-Channel Configuration
Table 11: S/UNI-4x622 Channel Configuration: sSUNI4x622_CFG_CHAN
Field Name Field Type
Field Description
cfgSOH
cfgLOH
cfgRPOH
cfgTPOH
sSUNI4x622_CFG_SOH
Section Overhead Processor (SOH) configuration
block
sSUNI4x622_CFG_LOH
sSUNI4x622_CFG_RPOH
sSUNI4x622_CFG_TPOH
Line Overhead Processor (LOH) configuration
block
Receive Path Overhead Processor (RPOH)
configuration block
Transmit Path Overhead Processor (TPOH)
configuration block
cfgPYLD
cfgFIFO
cfgLine
sSUNI4x622_CFG_PYLD
sSUNI4x622_CFG_FIFO
Payload Processor (PYLD) configuration block
FIFO configuration
sSUNI4x622_CFG_INTF
_LINE
Line Interface configuration block
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
36
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Per-Channel Section Overhead (SOH) Configuration
Table 12: S/UNI-4x622 Section Overhead Configuration: sSUNI4x622_CFG_SOH
Field Name
Field Type
Field Description
algo2
UINT1
Selects framing pattern used to determine and maintain the
frame alignment
sblkbip
dds
UINT1
UINT1
UINT1
UINT1
Controls accumulation of section BIP errors
Rx descrambling
ds
Tx scrambling
zeroen
Selects whether all zero trace identifier messages accepted
or ignored
Per-Channel Line Overhead (LOH) Configuration
Table 13: S/UNI-4x622 Line Overhead Configuration: sSUNI4x622_CFG_LOH
Field Name Field Type Field Description
laisdet
lrdidet
lbipword
sdlrdi
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
Selects Line AIS detection algorithm
Selects Line RDI detection algorithm
Selects accumulation of line BIP errors
Controls whether signal degrade can cause LRDI insertion
Controls whether signal failure can cause LRDI insertion
Controls whether loss of frame can cause LRDI insertion
Controls whether loss of signal can cause LRDI insertion
sflrdi
loflrdi
loslrdi
rtimlrdi
Controls whether section trace message mismatch can cause
LRDI insertion
rtiulrdi
UINT1
Controls whether section trace message unstable can cause
LRDI insertion
laislrdi
UINT1
UINT1
Controls whether line AIS can cause LRDI insertion
autolfebe
Controls whether line BIP errors can cause FEBE insertion
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
37
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Field Name Field Type Field Description
allones
UINT1
Controls whether incoming AIS will force the downstream
Sonet/SDH frame to all ones
sdins
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
Controls whether SD can cause Line AIS insertion
Controls whether SF can cause Line AIS insertion
Controls whether LOF can cause Line AIS insertion
Controls whether LOS can cause Line AIS insertion
Controls whether section TIM can cause Line AIS insertion
Controls whether section TIU can cause Line AIS insertion
sfins
lofins
losins
rtimins
rtiuins
dccais
Controls whether LOS or LOF can force all ones in the DCC
outputs
Per-Channel Receive Path Overhead (RPOH) Configuration
Table 14: S/UNI-4x622 Receive Path Overhead Configuration: sSUNI4x622_CFG_RPOH
Field Name Field Type Field Description
enss
UINT1
Selects SS bits are taking into account in the pointer interpreter
state machine
sos
UINT1
UINT1
UINT1
Enables justification more than 3 frames ago
iinvcnt
zeroen
Selects behavior of the consecutive INV_POINT event counter
Selects whether all zero trace identifier messages accepted or
ignored
Per-Channel Transmit Path Overhead (TPOH) Configuration
Table 15: S/UNI-4x622 Transmit Path Overhead Configuration: sSUNI4x622_CFG_TPOH
Field Name
Field Type Field Description
persist
UINT1
Control of the persistence of the RDI asserted into the
transmitted stream
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
38
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Field Name
Field Type Field Description
lcdprdi
UINT1
Controls whether loss of cell delineation can cause PRDI
insertion
alrmprdi
UINT1
Controls whether LOS,LOF or LAIS can cause PRDI
insertion
paisprdi
pslmprdi
UINT1
UINT1
Controls whether PAIS can cause PRDI insertion
Controls whether Path signal label mismatch can cause
PRDI insertion
lopprdi
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
Controls whether loss of pointer indications can cause
PRDI insertion
lopconprdi
ptiuprdi
ptimprdi
paisconprdi
uneqprdi
lcdeprdi
noalmeprdi
Controls whether loss of pointer concatenation indications
can cause PRDI insertion
Controls whether path trace identifier unstable can cause
PRDI insertion
Controls whether path trace identifier mismatch can cause
PRDI insertion
Controls whether path AIS concatenation events can cause
PRDI insertion
Controls whether unequipped path signal label can cause
PRDI insertion
Controls whether loss of cell delineation can cause EPRDI
insertion
Controls whether LOS,LOF or LAIS will disable EPRDI
insertion
nopaiseprdi
pslmeprdi
UINT1
UINT1
Controls whether PAIS will disable EPRDI insertion
Controls whether Path signal label mismatch can cause
EPRDI insertion
nolopeprdi
UINT1
Controls whether loss of pointer indications can disable
EPRDI insertion
nolopconeprdi UINT1
Controls whether loss of pointer concatenation indications
will disable EPRDI insertion
ptiueprdi
UINT1
Controls whether path trace identifier unstable can cause
EPRDI insertion
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
39
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Field Name
Field Type Field Description
ptimeprdi
UINT1
UINT1
UINT1
UINT1
UINT1
Controls whether path trace identifier mismatch can cause
EPRDI insertion
paisconpais
lopconpais
pslmpais
Controls whether AIS concatenation events can cause PAIS
insertion
Controls whether loss of pointer concatenation events can
cause PAIS insertion
Controls whether path signal label mismatch can cause
PAIS insertion
pslupais
Controls whether path signal label unstable can cause PAIS
insertion
loppais
tiupais
timpais
autopfebe
UINT1
UINT1
UINT1
UINT1
Controls whether loss of signal can cause PAIS insertion
Controls whether path TIU can cause PAIS insertion
Controls whether path TIM can cause PAIS insertion
Controls whether path BIP errors can cause FEBE insertion
Per-Channel Payload Processor Configuration
Table 16: S/UNI-4x622 Payload Processor: sSUNI4x622_CFG_PYLD
Field Name
Field Type Field Description
rxddscr
UINT1
UINT1
UINT1
UINT1
UINT2
UINT1
UINT1
UINT1
UINT1
RX descrambles payload
rxcpdiscor
rxcpidlepass
rxcpccdis
Disables ATM HCS error correction
RX ignore idle cell header pattern and mask for ATM cells
Disables cell delineation and filtering
RX LCD Count Threshold
RX idle cell header
rxcplcdc
rxcpidlehdr
rxcpidlemask
rxfpfcssel
rxfpfcspass
RX idle cell mask
RX FCS select
RX selects FCS stripping
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
40
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Field Name
rxfpminpl
rxfpmaxpl
txdscr
Field Type Field Description
UINT1
UINT2
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
RX minimum packet length
RX maximum packet length
TX scrambles outgoing payload
TX idle cell header
txcpidlehdr
txcpidlepyld
txfpfcssel
mode
TX idle cell payload
TX FCS select
ATM or POS mode
txfpipgap
The number of Flag Sequence characters inserted between
each POS Frame
Per-Channel FIFO Configuration
Table 17: S/UNI-4x622 FIFO Configuration: sSUNI4x622_CFG_FIFO
Field Name
rxfpril
Field Type
UINT1
Field Description
RX FIFO overrun before frame receive
TX FIFO fill level before frame transmit
txfptil
UINT1
Per-Channel Clock Interface Configuration
Table 18: S/UNI-4x622 Clock Interface Configuration: sSUNI4x622_CFG_CLK
Field Name Field Type Field Description
loopt
UINT1
UINT1
Selects REFCLK or recovered clock as tx source
dccsel
Configures whether the DCC is configured for section or line
DCC operation
tfpen
UINT1
Controls whether frame pulse input used for alignment
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
41
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Per-Channel RALRM Configuration
Table 19: S/UNI-4x622 Clock Interface Configuration: sSUNI4x622_CFG_RALRM
Field Name Field Type Field Description
losen
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
Controls whether LOS set RALRM output
lofen
Controls whether LOF set RALRM output
oofen
Controls whether OOF set RALRM output
Controls whether line AIS set RALRM output
Controls whether Line RDIset RALRM output
Controls whether SD threshold event set RALRM output
Controls whether SF threshold event set RALRM output
Controls whether section TIM set RALRM output
Controls whether LOP set RALRM output
laisen
lrdien
sdberen
sfberen
stimen
lopen
lcden
Controls whether LCD set RALRM output
Controls whether path AIS set RALRM output
Controls whether path RDI set RALRM output
Controls whether path ERDI set RALRM output
paisen
prdien
perdien
pslmen
Controls whether path signal label mismatch set RALRM
output
ptimen
conen
UINT1
UINT1
Controls whether path TIM set RALRM output
Controls whether pointer concatenation violation set RALRM
output
Per-Channel Line Interface Configuration
Table 20: S/UNI-4x622 Line Interface Configuration: sSUNI4x622_CFG_INTF_LINE
Field Name
Field Type
Field Description
cfgClk
sSUNI4x622_CFG_CLK
Clock configuration block
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
42
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Field Name
Field Type
Field Description
RALRM configuration block
cfgRALRM
sSUNI4x622_CFG_RALRM
Device-wide System Interface Configuration
Table 21: S/UNI-4x622 Global System Interface Configuration:
sSUNI4x622_CFG_INTF_SYS_GLOBAL
Field Name
Field Type
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
Field Description
tul3prtyp
TUL3 parity
tul3l3mode
TUL3 mode
tul3atmsiglbl
tul3possiglbl
rul3prtyp
TUL3 ATM signal label
TUL3 POS signal label
RUL3 parity
rul3l3mode
RUL3 mode
rul3atmsiglbl
rul3possiglbl
tul3atmfifodp
tul3posfifolwm
tul3posfifohwm
tul3cellform
rul3cellform
rul3pause
RUL3 ATM signal label
RUL3 POS signal label
TUL3 ATM FIFO depth
TUL3 POS FIFO low water mark
TUL3 POS FIFO high water mark
TUL3 cell size (52 or 56)
RUL3 cell size (52 or 56)
RUL3 minimum time between POS transfer burst
RUL3 maximum single-channel transfer
rul3tran
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
43
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Device-Wide Line Interface Configuration
Table 22: S/UNI-4x622 Global Line Interface Configuration:
sSUNI4x622_CFG_INTF_LINE_GLOBAL
Field Name Field Type Field Description
rsel
UINT1
Selects which channel is used as a clock source for the rx clock
output pin
tsel
UINT1
Selects which channel is used as a clock source for the tx clock
output pin
Table 23: S/UNI-4x622 Signal Failure Configuration: sSUNI4x622_CFG_SF
Field Name Field Type Field Description
sfcmode
UINT1
Clears alarm using a window size 8 times longer than the alarm
declaration window size
sfsmode
UINT1
UINT1
Saturates the BIP count on a per window basis
sfberten
Automatic monitoring of line bit error rate threshold events by
the SF BERM
sfsap
sfsth
sfdth
sfcth
UINT4
UINT4
UINT4
UINT4
SF Accumulation period
SF Saturation Threshold
SF Declaring Threshold
SF Clearing Threshold
Table 24: S/UNI-4x622 Signal Defect Configuration: sSUNI4x622_CFG_SD
Field Name Field Type Field Description
sdcmode
UINT1
Clears alarm using a window size 8 times longer than the alarm
declaration window size
sdsmode
UINT1
UINT1
Saturates the BIP count on a per window basis
sdberten
Automatic monitoring of line bit error rate threshold events by
the SF BERM
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
44
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Field Name Field Type Field Description
sdsap
sdsth
sddth
sdcth
UINT4
UINT4
UINT4
UINT4
SD Accumulation period
SD Saturation Threshold
SD Declaring Threshold
SD Clearing Threshold
Table 25: S/UNI-4x622 Channel Status Block: sSUNI4x622_STATUS_CHAN
Field Name
Field Type
Field Description
statusSOH
sSUNI4x622_STATUS
_SOH
Alarms, status and counts from the Section
Overhead (SOH) section
statusLOH
sSUNI4x622_STATUS
_LOH
Alarms, status and counts from the Line Overhead
(LOH) section
statusRPOH
sSUNI4x622_STATUS
_RPOH
Alarms, status and counts from the Receive Path
Overhead (RPOH) Section
statusPYLD
statusLINE
sSUNI4x622_STATUS
_PYLD
Alarms, status and counts from the Payload Section
sSUNI4x622_STATUS
_INTF_LINE
Alarms, status and counts from Line Interface
section
Section Overhead (SOH) Status
Table 26: S/UNI-4x622 Section Overhead Status: sSUNI4x622_STATUS_SOH
Field Name
Field Type
Field Description
oof
UINT1
Out of frame defect
lof
los
tiu
tim
UINT1
UINT1
UINT1
UINT1
Loss of frame defect
Loss of signal defect
Section trace identifier unstable
Section trace identifier mismatch
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
45
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Line Overhead (LOH) Status
Table 27: S/UNI-4x622 Line Overhead Status: sSUNI4x622_STATUS_LOH
Field Name
k1
Field Type
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
Field Description
Receive K1
k2
Receive K2
s1
Receive S1
laisdet
lrdidet
sfber
sdber
psbf
Line alarm signal defect
Line remote defect indication
Signal Failure
Signal Degrade
APS byte failure
Receive Path Overhead (RPOH) Status
Table 28: S/UNI-4x622 Receive Path Overhead Processor Status:
sSUNI4x622_STATUS_RPOH
Field Name Field Type Field Description
perdi
UINT1
Path enhanced RDI status(filtered received EPRDI bits,G1 bit
5,6 and 7)
rxptr
rxss
txptr
txss
apsl
epsl
plop
pais
UINT2
UINT1
UINT2
UINT1
UINT1
UINT1
UINT1
UINT1
Last payload pointer read from the receive stream
Rx SS (DD) bits
Current payload pointer being inserted in the tx stream
Tx SS bits
Accepted path signal label
Expected path signal label
Path lost of pointer status
Path AIS status
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
46
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Field Name Field Type Field Description
prdi
tiu
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
UINT1
Path RDI status
Path trace identifier unstable
Path trace identifier mismatch
tim
uneq
pslu
pslm
ardi
aisc
lopc
Equip status of the path signal label
Path signal label unstable
Path signal label mismatch
Aux RDI status
AIS concatenated
Loss of pointer concatenated
Payload Processor Status
Table 30: S/UNI-4x622 Payload Status: sSUNI4x622_STATUS_PYLD
Field Name
Field Type
Field Description
rxcpovr
UINT1
RXCP accumulation transfer overrun
TXCP accumulation transfer overrun
Loss of cell delineation
txcpovr
lcd
UINT1
UINT1
UINT1
oocd
out of cell delineation
Clock Status
Table 29: S/UNI-4x622 Clock Status: sSUNI4x622_STATUS_CLK
Field Name
Field Type
Field Description
TCLKA active
RCLKA active
RFCLK active
tclka
UINT1
rclka
UINT1
UINT1
rfclka
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
47
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Field Name
tfclka
Field Type
UINT1
Field Description
TFCLK active
refclka
UINT1
REFCLKA active
Line Interface Status
Table 30: S/UNI-4x622 Line Interface Status: sSUNI4x622_STATUS_INTF_LINE
Field Name
Field Type
Field Description
statusClk
sSUNI4x622_STATUS_CLK
Clock interface status
Counters (CNT)
Table 31: S/UNI-4x622 Counters: sSUNI4x622_CNTR_CHAN
Field Name Field Type
Field Description
cntrSOH
cntrLOH
cntrRPOH
sSUNI4x622_CNTR_SOH
Counters for Section Overhead (SOH) section
Counters for Line Overhead (LOH) section
sSUNI4x622_CNTR_LOH
sSUNI4x622_CNTR_RPOH
Counters for Receive Path Overhead (RPOH)
section
cntrPYLD
sSUNI4x622_CNTR_PYLD
Counters for Payload Processor (PYLD) section
Section Overhead (SOH) Counter
Table 32: S/UNI-4x622 Section Overhead (SOH) Counters: sSUNI4x622_CNTR_SOH
Field Name
Field Type
Field Description
sbe
UINT2
Section BIP error counter
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
48
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Line Overhead (LOH) Counter
Table 33: S/UNI-4x622 Line Overhead (LOH) Counters: sSUNI4x622_CNTR_LOH
Field Name
lbe
Field Type
UINT4
Field Description
Line BIP error counter
Line REI error counter
lfe
UINT4
Receive Path Overhead (RPOH) Counter
Table 34: S/UNI-4x622 Receive Path Overhead (RPOH) Counters:
sSUNI4x622_CNTR_RPOH
Field Name
Field Type
Field Description
Path BIP error counter
Path REI error counter
pbe
UINT2
pfe
UINT2
Payload Processor (PYLD) Counter
Table 35: S/UNI-4x622 Payload Processor Counters: sSUNI4x622_CNTR_PYLD
Field Name
Field Type
Field Description
Rx corrected HCS error count
Rx uncorrected HCS error count
Rx cell count
rxcpchcs
UINT1
rxcpuhcs
UINT1
UINT4
UINT4
UINT4
UINT4
UINT4
UINT2
UINT2
rxcprcell
rxcpicell
txcptcell
rxfprbyte
rxfprframe
rxfprabrf
rxfprfcsef
Rx idle cell count
Tx cell count
Rx byte count
Rx frame count
Rx aborted frame count
Rx FCS error frame count
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
49
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Field Name
rxfprminlf
rxfprmaxlf
txfptbyte
Field Type
UINT2
Field Description
Rx minimum length error frame count
Rx maximum length error frame count
Tx byte count
UINT2
UINT4
txfptframe
txfptusrabf
txfptferabf
UINT4
Tx frame count
UINT4
Tx user aborted frame count
Tx underrun/error aborted frame count
UINT4
3.4 Structures Passed through RTOS Buffers
Interrupt-Service Vector: ISV
This buffer structure is used to capture the status of the device (during a poll or ISR processing)
for use by the Deferred-Processing Routine (DPR). It is the template for all device registers that
are involved in exception processing. It is the application’s responsibility to create a pool of ISV
buffers (using this template to determine the buffer’s size) when the driver calls the USER-
supplied sysSuni4x622BufferStart function. An individual ISV buffer is then obtained by
the driver via sysSuni4x622ISVBufferGet and returned to the ‘pool’ via
sysSuni4x622ISVBufferRtn.
Table 36: S/UNI-4x622 Interrupt-Service Vector: sSUNI4x622_ISV
Field Name
Field Type
Field Description
deviceHandle
sSUNI4x622_HNDL
Handle to the device in cause
ISR mask filled with interrupt status
mask
sSUNI4x622_MASK_ISR
Deferred-Processing Vector: DPV
This block is used in two ways. First it is used to determine the size of buffer required by the
RTOS for use in the driver. Second it is the template for data that is assembled by the DPR and
sent to the application code. Note: the application code is responsible for returning this buffer to
the RTOS buffer pool.
The DPR reports events to the application using user-defined callbacks. The DPR uses each
callback to report a functionally-related group of events. Refer to page 104 for a description of
the S/UNI-4x622 callback functions, and Appendix C (page 126) for a list of events.
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
50
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Data Structures
Table 37: S/UNI-4x622 Deferred-Processing Vector: sSUNI4x622_DPV
Field Name
Field Type
Field Description
event
SUNI4x622_DPR_EVENT
Event being reported
Reason for the Event
cause
UINT2
3.5 Global Variable
Although most of the variables within the driver are not meant to be used by the application code,
there is one global variable that can be of great use to the application code.
suni4x622Mdb: A global pointer to the Module Data Block (MDB). The content of this global
variable should be considered read-only by the application.
•
errModule: This structure element is used to store an error code that specifies the reason for
an API function’s failure. The field is only valid for functions that do not return an error code
or when a value of SUNI4x622_FAILURE is returned.
•
•
stateModule: This structure element is used to store the module state (as shown in Figure
3).
pddb[ ]: An array of pointers to the individual Device Data Blocks. The USER is cautioned
that a DDB is only valid if the valid flag is set. Note that the array of DDBs is in no
particular order.
°
errDevice: This structure element is used to store an error code that specifies the reason
for an API function’s failure. The field is only valid for functions that do not return an
error code or when a value of SUNI4x622_FAILURE is returned.
°
stateDevice: This structure element is used to store the device state (as shown in
Figure 3).
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
51
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
4 APPLICATION PROGRAMMING INTERFACE
This section provides a detailed description of each function that is a member of the S/UNI-4x622
driver Application Programming Interface (API).
The API functions typically execute in the context of an application task.
Note: These functions are not re-entrant. This means that two application tasks can not invoke the
same API at the same time. However the driver protects its data structures from concurrent
accesses by the application and the DPR task.
4.1 Module Management
The module management is a set of API functions that are used by the application to open, start,
stop and close the driver module. These functions will take care of initializing the driver,
allocating memory and all RTOS resources needed by the driver. They are also used to change the
module state. For more information on the module states see the state diagram on page 19. For a
typical module management flow diagram see page 21.
Opening the Driver Module: suni4x622ModuleOpen
This function performs module level initialization of the device driver. This involves allocating
all of the memory needed by the driver and initializing the internal structures.
INT4 suni4x622ModuleOpen(sSUNI4x622_MIV *pmiv)
pmiv
Prototype
Inputs
: (pointer to) Module Initialization Vector
Places the address of the MDB into the MIV passed by the application
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_MODULE_STATE
SUNI4x622_ERR_INVALID_MIV
SUNI4x622_ERR_MEM_ALLOC
SUNI4x622_MOD_START
Valid States
Side Effects
Changes the MODULE state to SUNI4x622_MOD_IDLE
Closing the Driver Module: suni4x622ModuleClose
This function performs module level shutdown of the driver. This involves deleting all devices
being controlled by the driver (by calling suni4x622Delete for each device) and de-allocating
all the memory allocated by the driver.
INT4 suni4x622ModuleClose(void)
Prototype
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
52
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
None
Inputs
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_MODULE_STATE
SUNI4x622_MOD_IDLE, SUNI4x622_MOD_READY
Changes the MODULE state to SUNI4x622_MOD_START
Valid States
Side Effects
Starting the Driver Module: suni4x622ModuleStart
This function connects the RTOS resources to the driver. This involves allocating semaphores and
timers, initializing buffers and installing the ISR handler and DPR task. Upon successful return
from this function the driver is ready to add devices.
INT4 suni4x622ModuleStart(void)
Prototype
Inputs
None
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_MODULE_STATE
SUNI4x622_ERR_MEM_ALLOC
SUNI4x622_ERR_INT_INSTALL
SUNI4x622_MOD_IDLE
Valid States
Side Effects
Changes the MODULE state to SUNI4x622_MOD_READY
Stopping the Driver Module: suni4x622ModuleStop
This function disconnects the RTOS resources from the driver. This involves de-allocating
semaphores and timers, freeing-up buffers and uninstalling the ISR handler and the DPR task. If
there are any registered devices, suni4x622Delete is called for each.
INT4 suni4x622ModuleStop(void)
Prototype
Inputs
None
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_MODULE_STATE
SUNI4x622_MOD_READY
Valid States
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
53
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Side Effects
Changes the MODULE state to SUNI4x622_MOD_IDLE
4.2 Profile Management
This section describes the functions that add, get and clear an initialization profile. Initialization
profiles allow the user to store pre-defined Device Initialization Vectors (DIV) that are validated
ahead of time. When the device initialization function is invoked only a profile number needs to
be passed. This method simplifies and expedites the initialization process.
Adding an Initialization Profile: suni4x622AddInitProfile
This function creates an initialization profile that is stored by the driver. A device can now be
initialized by simply passing the initialization profile number.
INT4 suni4x622AddInitProfile(sSUNI4x622_DIV
*pProfile, UINT2 *pProfileNum)
Prototype
Inputs
pProfile
: (pointer to) initialization profile being added
pProfileNum : (pointer to) profile number to be assigned by the driver
pProfileNum : (pointer to) profile number assigned by the driver
Success = SUNI4x622_SUCCESS
Outputs
Returns
Failure = SUNI4x622_ERR_INVALID_MODULE_STATE
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ERR_INVALID_PROFILE
SUNI4x622_ERR_PROFILES_FULL
SUNI4x622_MOD_IDLE, SUNI4x622_MOD_READY
Valid States
Side Effects
None
Getting an Initialization Profile: suni4x622GetInitProfile
This function gets the content of an initialization profile given its profile number.
INT4 suni4x622GetInitProfile(UINT2 profileNum,
sSUNI4x622_DIV *pProfile)
Prototype
Inputs
profileNum : initialization profile number
pProfile
: (pointer to) initialization profile
Outputs
Returns
pProfile
: (pointer to) contents of the corresponding profile
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_MODULE_STATE
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ERR_INVALID_PROFILE_NUM
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
54
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
SUNI4x622_MOD_IDLE, SUNI4x622_MOD_READY
Valid States
Side Effects
None
Deleting an Initialization Profile: suni4x622DeleteInitProfile
This function deletes an initialization profile given its profile number.
INT4 suni4x622DeleteInitProfile(UINT2 profileNum)
Prototype
Inputs
profileNum : initialization profile number
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_MODULE_STATE
SUNI4x622_ERR_INVALID_PROFILE_NUM
SUNI4x622_MOD_IDLE, SUNI4x622_MOD_READY
Valid States
Side Effects
None
4.3 Device Management
The device management is a set of API functions that are used by the application to control the
device. These functions take care of initializing a device in a specific configuration, enabling the
device general activity as well as enabling interrupt processing for that device. They are also used
to change the software state for that device. For more information on the device states see the
state diagram on page 19. For a typical device management flow diagram see page 22.
Adding a Device: suni4x622Add
This function verifies the presence of a new device in the hardware then returns a handle back to
the user. The device handle is passed as a parameter of most of the device API Functions. It’s
used by the driver to identify the device on which the operation is to be performed.
sSUNI4x622_HNDL suni4x622Add(sSUNI4x622_USR_CTXT
usrCtxt, void *pBaseAddr, INT4 **perrDevice)
Prototype
Inputs
usrCtxt
: user context for this device
pBaseAddr
: (pointer to) base address of the device
perrDevice : (pointer to) an area of memory
ERROR code written to the MDB on failure
SUNI4x622_ERR_INVALID_MODULE_STATE
SUNI4x622_ERR_INVALID_ARG
Outputs
SUNI4x622_ERR_DEVS_FULL
SUNI4x622_ERR_DEV_ALREADY_ADDED
SUNI4x622_ERR_INVALID_DEV
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
55
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
perrDevice : (pointer to) errDevice (inside the DDB)
Success = Device Handle (to be used bas an argument to most of the
S/UNI-4x622 APIs)
Returns
Failure = NULL (pointer)
SUNI4x622_MOD_READY
Valid States
Side Effects
Changes the DEVICE state to SUNI4x622_PRESENT
Deleting a Device: suni4x622Delete
This function removes the specified device from the list of devices being controlled by the
S/UNI-4x622 driver. Deleting a device involves invalidating the DDB for that device and
releasing its associated device handle.
INT4 suni4x622Delete(sSUNI4x622_HNDL deviceHandle)
Prototype
Inputs
deviceHandle
: device handle (from suni4x622Add)
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEV
SUNI4x622_PRESENT, SUNI4x622_ACTIVE,
SUNI4x622_INACTIVE
Valid States
Side Effects
Changes the DEVICE state to SUNI4x622_PRESENT
Initializing a Device: suni4x622Init
This function initializes the Device Data Block (DDB) associated with that device during
suni4x622Add, applies a soft reset to the device and configures it according to the DIV passed
by the application. If the DIV is passed as a NULL the profile number is used. A profile number
of zero indicates that all the register bits are to be left in their default state (after a soft reset).
Note that the profile number is ignored UNLESS the passed DIV is NULL.
INT4 suni4x622Init(sSUNI4x622_HNDL deviceHandle,
sSUNI4x622_DIV *pdiv, UINT2 profileNum)
Prototype
Inputs
deviceHandle
pdiv
: device handle (from suni4x622Add)
: (pointer to) Device Initialization Vector
: profile number (ignored if pdiv is NULL)
profileNum
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_PROFILE_NUM
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
56
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
SUNI4x622_ERR_INVALID_DIV
SUNI4x622_PRESENT
Changes the DEVICE state to SUNI4x622_INACTIVE
Valid States
Side Effects
Updating the Configuration of a Device: suni4x622Update
This function updates the configuration of the device as well as the Device Data Block (DDB)
associated with that device according to the DIV passed by the application. The only difference
between suni4x622Update and suni4x622Init is that no soft reset will be applied to the
device.
INT4 suni4x622Update(sSUNI4x622_HNDL deviceHandle,
sSUNI4x622_DIV *pdiv, UINT2 profileNum)
Prototype
Inputs
deviceHandle
pdiv
: device handle (from suni4x622Add)
: (pointer to) Device Initialization Vector
: profile number (ignored if pdiv is NULL)
profileNum
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_PROFILE_NUM
SUNI4x622_ERR_INVALID_DIV
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Resetting a Device: suni4x622Reset
This function applies a software reset to the S/UNI-4x622 device. Also resets all the DDB
contents (except for the user context). This function is typically called before re-initializing the
device (via suni4x622Init).
INT4 suni4x622Reset(sSUNI4x622_HNDL deviceHandle)
Prototype
Inputs
deviceHandle
: device handle (from suni4x622Add)
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_PRESENT, SUNI4x622_ACTIVE,
SUNI4x622_INACTIVE
Valid States
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
57
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Side Effects
Changes the DEVICE state to SUNI4x622_PRESENT
Activating a Device: suni4x622Activate
This function restores the state of a device after a de-activate. Interrupts may be re-enabled.
INT4 suni4x622Activate(sSUNI4x622_HNDL deviceHandle)
Prototype
Inputs
deviceHandle
: device handle (from suni4x622Add)
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_INACTIVE
Valid States
Side Effects
Changes the DEVICE state to SUNI4x622_ACTIVE
De-Activating a Device: suni4x622DeActivate
This function de-activates the device from operation. Interrupts are masked and the device is put
into a quiet state via enable bits.
INT4 suni4x622DeActivate(sSUNI4x622_HNDL
deviceHandle)
Prototype
Inputs
deviceHandle
: device handle (from suni4x622Add)
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ACTIVE
Valid States
Side Effects
Changes the DEVICE state to SUNI4x622_INACTIVE
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
58
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
4.4 Device Read and Write
Reading from Device Registers: suni4x622Read
This function reads a register of a specific S/UNI-4x622 device by providing the register number.
This function derives the actual address location based on the device handle and register number
inputs. It then reads the contents of this address location using the system specific macro,
sysSuni4x622Read. Note that a failure to read returns a zero and any error indication is written
to the associated DDB.
UINT1 suni4x622Read(sSUNI4x622_HNDL deviceHandle,
UINT2 regNum)
Prototype
Inputs
deviceHandle
regNum
: device handle (from suni4x622Add)
: register number
ERROR code written to the MDB
Outputs
Returns
SUNI4x622_ERR_INVALID_DEV
ERROR code written to the DDB
SUNI4x622_ERR_INVALID_REG
Success = value read
Failure = 0
SUNI4x622_PRESENT, SUNI4x622_ACTIVE,
SUNI4x622_INACTIVE
Valid States
Side Effects
May affect registers that change after a read operation
Writing to Device Registers: suni4x622Write
This function writes to a register of a specific S/UNI-4x622 device by providing the register
number. This function derives the actual address location based on the device handle and register
number inputs. It then writes the contents of this address location using the system specific
macro, sysSuni4x622Write. Note that a failure to write returns a zero and any error indication
is written to the DDB.
UINT1 suni4x622Write(sSUNI4x622_HNDL deviceHandle,
UINT2 regNum, UINT1 value)
Prototype
Inputs
deviceHandle
regNum
: device handle (from suni4x622Add)
: register number
value
: value to be written
ERROR code written to the MDB
Outputs
Returns
SUNI4x622_ERR_INVALID_DEV
ERROR code written to the DDB
SUNI4x622_ERR_INVALID_REG
Success = value written
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
59
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Failure = 0
SUNI4x622_PRESENT, SUNI4x622_ACTIVE,
SUNI4x622_INACTIVE
Valid States
Side Effects
May change the configuration of the device
Reading from a block of Device Registers: suni4x622ReadBlock
This function reads a register block of a specific S/UNI-4x622 device by providing the starting
register number, and the size to read. This function derives the actual start address location based
on the device handle and starting register number inputs. It then reads the contents of this data
block using multiple calls to the system specific macro, sysSuni4x622Read. Note that any error
indication is written to the DDB. It is the USER’s responsibility to allocate enough memory for
the block read.
void suni4x622ReadBlock(sSUNI4x622_HNDL deviceHandle,
UINT2 startRegNum, UINT2 size, UINT1 *pblock)
Prototype
Inputs
deviceHandle
startRegNum
size
: device handle (from suni4x622Add)
: starting register number
: size of the block to read
pblock
: (pointer to) the block to read
ERROR code written to the DDB
Outputs
SUNI4x622_ERR_INVALID_DEV
ERROR code written to the DDB
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ERR_INVALID_REG
pblock
: (pointer to) the block read
None
Returns
SUNI4x622_PRESENT, SUNI4x622_ACTIVE,
SUNI4x622_INACTIVE
Valid States
May affect registers that change after a read operation
Side Effects
Writing to a Block of Device Registers: suni4x622WriteBlock
This function writes to a register block of a specific S/UNI-4x622 device by providing the
starting register number and the block size. This function derives the actual starting address
location based on the device handle and starting register number inputs. It then writes the contents
of this data block using multiple calls to the system specific macro, sysSuni4x622Write. A bit
from the passed block is only modified in the device’s registers if the corresponding bit is set in
the passed mask. Note that any error indication is written to the DDB
void suni4x622WriteBlock(sSUNI4x622_HNDL
deviceHandle, UINT2 startRegNum, UINT2 size, UINT1
*pblock, UINT1 *pmask)
Prototype
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
60
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Inputs
deviceHandle
startRegNum
size
pblock
pmask
: device handle (from suni4x622Add)
: starting register number
: size of block to read
: (pointer to) block to write
: (pointer to) mask
ERROR code written to the DDB
Outputs
SUNI4x622_ERR_INVALID_DEV
ERROR code written to the DDB
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ERR_INVALID_REG
None
Returns
SUNI4x622_PRESENT, SUNI4x622_ACTIVE,
SUNI4x622_INACTIVE
Valid States
May change the configuration of the device
Side Effects
4.5 Section Overhead (SOH)
The Section Overhead section provides functions to control and monitor the section overhead
processing. Read / Write access is given to the section trace message (J0). This message is
compared with a configurable reference and mismatches are reported. For diagnostic purposes,
errors can be introduced in the section overhead bytes.
Writing the J0 Byte: suni4x622SOHWriteJ0
This function writes the J0 byte into the transmit section overhead.
INT4 suni4x622SOHWriteJ0(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT1 J0)
Prototype
Inputs
deviceHandle
channel
J0
: device handle (from suni4x622Add)
: channel number
: J0 byte to write
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
61
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Reading and Setting the Section Trace Message : suni4x622SOHTraceMsg
This function retrieves and sets the section trace message (J0) in the Sonet/SDH Section Trace
Buffer.
Note: It is the USER’s responsibility to ensure that the message pointer points to an area of
memory large enough to hold the returned data.
INT4 suni4x622SOHTraceMsg(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT2 acctyp, UINT1*
pJ0)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
acctyp
: type of access
0 = write tx section trace msg
1 = read rx accepted section trace msg
2 = read rx captured section trace msg
3 = write rx expected section trace msg
: (pointer to) the section trace message
pJ0
pJ0
Outputs
Returns
: (pointer to) section trace message
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ERR_POLL_TIMEOUT
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Forcing A1 Error : suni4x622SOHForceA1
When the enable flag is set, this function introduces framing errors in the A1 bytes. When the
enable flag is not set, this function resumes normal processing.
INT4 suni4x622SOHForceA1(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT2 enable)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
enable
: flag to start/stop A1 error insertion
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
62
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Forcing B1 Error: suni4x622SOHForceB1
This function inserts the B1 BIP-8 errors byte to be inserted to the section overhead.
INT4 suni4x622SOHForceB1(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT2 enable)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
enable
: flag to start/stop B1 error insertion
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Forcing OOF: suni4x622SOHForceOOF
This function forces the Section Overhead Processor temporarily out of frame. The Section
Overhead Processor will attempt to lock back onto the frame.
INT4 suni4x622SOHForceOOF(sSUNI4x622_HNDL
deviceHandle, UINT1 channel)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
63
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Forcing LOS: suni4x622SOHForceLOS
When the enable flag is set, this function forces a loss of signal condition in the data stream.
When the enable flag is not set, this function resumes normal processing.
INT4 suni4x622SOHForceLOS(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT2 enable)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
enable
: flag to start/stop a loss of signal condition
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
4.6 Line Overhead (LOH)
The Line Overhead section provides functions to configure and monitor the line overhead on both
the receive and transmit sides. Read / Write access is given to the APS bytes (K1 and K2) and
most other overhead bytes. Signal failure and signal degrade can be monitored. For diagnostic
purposes, errors can be introduced in the line overhead bytes. Additional functions are provided to
automatically insert line RDI and line AIS.
Configuring SF Error Monitor: suni4x622LOHSFCfg
This function configures the Signal Failure BERM automatic monitoring of line bit error rate
threshold events.
INT4 suni4x622LOHSFCfg(sSUNI4x622_HNDL deviceHandle,
UINT1 channel, sSUNI4x622_CFG_SF *psfcfg)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
psfcfg
: (pointer to) SF configuration block
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
64
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Configuring SD Error Monitor: suni4x622LOHSDCfg
This function configures the Signal Defect BERM automatic monitoring of line bit error rate
threshold events.
INT4 suni4x622LOHSDCfg(sSUNI4x622_HNDL deviceHandle,
UINT1 channel, sSUNI4x622_CFG_SD *psdcfg)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
psdcfg
: (pointer to) SD configuration block
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Writing the K1K2 Byte: suni4x622LOHWriteK1K2
This function writes the K1, K2 byte into the line overhead.
INT4 suni4x622LOHWriteK1K2(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT1 K1, UINT1 K2)
Prototype
Inputs
deviceHandle
channel
K1
: device handle (from suni4x622Add)
: channel number
: K1 byte to write
K2
: K2 byte to write
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
65
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
None
Side Effects
Reading the K1K2 Byte: suni4x622LOHReadK1K2
This function reads the K1K2 byte from the line overhead.
INT4 suni4x622LOHReadK1K2(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT1 *pK1, UINT1 *pK2)
Prototype
Inputs
deviceHandle
channel
pK1
: device handle (from suni4x622Add)
: channel number
: (pointer to) store K1 byte read
: (pointer to) store K2 byte read
pK2
Outputs
Returns
pK1
pK2
: (pointer to) K1 byte read
: (pointer to) K2 byte read
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Writing the S1 Byte: suni4x622LOHWriteS1
This function writes the S1 byte into the line overhead.
INT4 suni4x622LOHWriteS1(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT1 S1)
Prototype
Inputs
deviceHandle
channel
S1
: device handle (from suni4x622Add)
: channel number
: S1 byte to write
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
66
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Reading the S1 Byte: suni4x622LOHReadS1
This function reads the S1 byte from the line overhead.
INT4 suni4x622LOHReadS1(sSUNI4x622_HNDL deviceHandle,
UINT1 channel, UINT1 *pS1)
Prototype
Inputs
deviceHandle
channel
pS1
: device handle (from suni4x622Add)
: channel number
: (pointer to) store S1 byte read
Outputs
Returns
pS1
: (pointer to) S1 byte read
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Forcing Line AIS: suni4x622LOHForceAIS
This function forces line AIS in the transmit direction.
INT4 suni4x622LOHForceAIS(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT2 enable)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
enable
: flag to start/stop line AIS insertion
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Forcing B2 Error: suni4x622LOHForceB2
This function forces B2 BIP-8 errors into the line overhead.
INT4 suni4x622LOHForceB2(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT2 enable)
Prototype
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
67
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
enable
: flag to start/stop B2 error insertion
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Forcing Line RDI: suni4x622LOHForceRDI
This function forces the line RDI into the line overhead.
INT4 suni4x622LOHForceRDI(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT2 enable)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
enable
: flag to start/stop line RDI insertion
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
4.7 Path Overhead (RPOH, TPOH)
The Path Overhead Processor is responsible for pointer interpretation, path overhead processing,
synchronous payload envelope, path level alarm and performance monitoring on both receive and
transmit sides. The Path Overhead section configures and monitors the path overhead on both
receive and transmit sides. Write access is given to the path trace message (J1) and the path signal
label (C2) and other overhead bytes. For diagnostic purposes, errors can be introduced in the path
overhead bytes. Additional functions are provided to automatically insert path AIS, force
generation of outgoing justification events.
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
68
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Retrieving and Setting the Path Trace Messages: suni4x622POHTraceMsg
This function retrieves and sets the current path trace message in the Sonet/SDH Path Trace
Buffer. Note: It is the USER’s responsibility to make sure that the message pointer points to an
area of memory large enough to hold the returned data.
INT4 suni4x622POHTraceMsg(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT2 acctyp, UINT1*
pJ1)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
acctyp
: type of access
0 = write tx path trace msg
1 = read rx accepted path trace msg
2 = read rx captured path trace msg
3 = write rx expected path trace msg
pJ1
pJ1
: (pointer to) the path trace message
Outputs
Returns
: (pointer to) updated path trace message
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ERR_POLL_TIMEOUT
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Writing the J1 Byte: suni4x622TPOHWriteJ1
This function writes the J1 byte into the path overhead.
INT4 suni4x622TPOHWriteJ1(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT1 J1)
Prototype
Inputs
deviceHandle
channel
J1
: device handle (from suni4x622Add)
: channel number
: J1 byte to write
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
69
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Writing the C2 Byte: suni4x622TPOHWriteC2
This function writes the C2 byte into the path overhead.
INT4 suni4x622TPOHWriteC2(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT1 C2)
Prototype
Inputs
deviceHandle
channel
C2
: device handle (from suni4x622Add)
: channel number
: C2 byte to write
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Writing the New Data Flag Bits: suni4x622TPOHWriteNDF
This function writes the passed new data flag bits (NDF[3:0]) in the NDF bit positions.
INT4 suni4x622TPOHWriteNDF(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT2 enable, UINT1 ndf)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
enable
:flag to start/stop inserting the NDF value
passed in this function
ndf
: NDF value (lower nibble)
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
70
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Writing SS Bits: suni4x622TPOHWriteSS
This function writes the passed SS bits (SS[1:0]) in the SS bit positions.
INT4 suni4x622TPOHWriteSS(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT1 ss)
Prototype
Inputs
deviceHandle
channel
ss
: device handle (from suni4x622Add)
: channel number
: SS bits value(bit 0 and bit 1)
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Inserting a Pointer Value: suni4x622TPOHInsertTxPtr
This function enables the insertion of the pointer value passed in argument into the H1 and H2
bytes of the transmit stream. As a result, the upstream payload mapping circuitry and a valid SPE
can continue functioning and generating normally.
INT4 suni4x622TPOHInsertTxPtr(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT2 aptr)
Prototype
Inputs
deviceHandle
channel
aptr
: device handle (from suni4x622Add)
: channel number
: pointer value to insert in (H1, H2)
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Force Path BIP-8 Errors: suni4x622TPOHForceB3
This function forces the B3 error in the transmit stream.
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
71
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
INT4 suni4x622THPPForceB3(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT2 enable)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
enable
: flag to start/stop B3 masking
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Forcing Pointer Justification: suni4x622TPOHForcePJ
The function forces single positive or negative pointer justification.
INT4 suni4x622TPOHForcePJ(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, INT1 type)
Prototype
Inputs
deviceHandle
channel
type
: device handle (from suni4x622Add)
: channel number
: type of Pointer Justification event:
–1 = negative Pointer Justification
+1 = positive Pointer Justification
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Forcing Path RDI: suni4x622TPOHForceRDI
This function enables the insertion of the Path Alarm Indication Signal (PRDI) in the transmit
stream.
INT4 suni4x622TPOHForceRDI(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT2 enable)
Prototype
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
72
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
enable
: flag to start/stop path RDI insertion
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Forcing Path ERDI: suni4x622TPOHForceERDI
This function enables the insertion of the Enhanced Path Alarm Indication Signal (EPRDI) in the
transmit stream.
INT4 suni4x622TPOHForceERDI(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT2 enable)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
enable
: flag to start/stop path ERDI insertion
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Forcing Path ARDI: suni4x622TPOHForceARDI
This function enables the insertion of the Auxiliary Path Alarm Indication Signal (APRDI) in the
transmit stream.
INT4 suni4x622TPOHForceARDI(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT2 enable)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
enable
: flag to start/stop path ARDI insertion
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
73
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Forcing Path AIS: suni4x622TPOHForceAIS
This function enables the insertion of the Path Alarm Indication Signal (PAIS) in the transmit
stream. The synchronous payload envelope and the pointer bytes (H1 – H3) are set to all ones.
INT4 suni4x622TPOHForceAIS(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT2 enable)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
enable
: flag to start/stop path AIS insertion
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
4.8 Payload Processor
The Payload Processor performs both ATM and PPP processing.
Setting Payload configuration parameters: suni4x622PyldCfg
This function sets up the minimum and maximum packet length, cell header and mask for
packet/cell payload configuration.
INT4 suni4x622PyldCfg(sSUNI4x622_HNDL deviceHandle,
UINT1 channel, sSUNI4x622_CFG_PYLD *ppyldcfg)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
74
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
ppyldcfg
: (pointer to) payload configuration parameters
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
4.9 Interface Configuration
The Interface Configuration provides FIFO management to separate the line side timing from the
high layer ATM/POS link layer timing, the line and system interface configuration.
Resetting the Receive/Transmit FIFO: suni4x622FIFOReset
This function resets the receive and/or transmit FIFO.
INT4 suni4x622FIFOReset(sSUNI4x622_HNDL deviceHandle,
UINT1 channel, UINT1 fifotype)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
fifotype
: =0 if RX; = 1 if TX; = 2 if both
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Configuring the Receive and Transmit FIFO: suni4x622FIFOCfg
This function configures the FIFO based on the FIFO configuration supplied.
INT4 suni4x622FIFOCfg(sSUNI4x622_HNDL deviceHandle,
UINT1 channel, sSUNI4x622_CFG_FIFO *pfifocfg)
Prototype
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
75
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pfifocfg
: (pointer to) FIFO configuration block
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Configuring the System interface: suni4x622SysIntfCfg
This function configures the system interface based on the configuration parameters.
INT4 suni4x622SysIntfCfg(sSUNI4x622_HNDL
deviceHandle, sSUNI4x622_CFG_INTF_SYS_GLOBAL *psyscfg
)
Prototype
Inputs
deviceHandle
psyscfg
: device handle (from suni4x622Add)
: (pointer to) system interface configuration
block
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Configuring the Device-Wide Line interface: suni4x622IntfLineCfg
This function configures the device-wide line interface based on the configuration parameters.
INT4 suni4x622IntfLineCfg(sSUNI4x622_HNDL
deviceHandle, sSUNI4x622_CFG_INTF_LINE_GLOBAL
*plinecfg )
Prototype
Inputs
deviceHandle
plinecfg
: device handle (from suni4x622Add)
: (pointer to) device-wide line interface
configuration block
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
76
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Resetting the TFCLK DLL: suni4x622IntfSysResetTDLL
This function resets the TFCLK DLL.
INT4 suni4x622IntfSysResetTDLL(sSUNI4x622_HNDL
deviceHandle)
Prototype
Inputs
deviceHandle
: device handle (from suni4x622Add)
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Resetting the RFCLK DLL: suni4x622IntfSysResetRDLL
This function resets the RFCLK DLL.
INT4 suni4x622IntfSysResetRDLL(sSUNI4x622_HNDL
deviceHandle)
Prototype
Inputs
deviceHandle
: device handle (from suni4x622Add)
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
77
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
4.10 Automatic Protection Configuration
The Automatic Protection Configuration section is responsible for configuring the S/UNI-4x622
to use the APS ports.
Configuring APS Working/Protect Mate: suni4x622APSCfg
When enable is set, this function enables the S/UNI-4x622 to operate as an APS working/protect
mate under a failed condition. When enable is not set, this function resumes normal operation.
INT4 suni4x622APSCfg(sSUNI4x622_HNDL deviceHandle,
UINT1 mode, UINT1 enable)
Prototype
Inputs
deviceHandle
mode
: device handle (from suni4x622Add)
: =0 if working mate; =1 if protect mate
: start/stop APS operation
enable
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Configuring the Source Channel for the Given Channel Receive Path:
suni4x622RPCfg
The function is used to control the source channel for the receive path.
INT4 suni4x622RPCfg(sSUNI4x622_HNDL deviceHandle,
UINT1 channel, UINT1 srcChan)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: receive path channel number
: source channel number
srcChan
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
78
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Configuring the Source Channel for the Given Channel Transmit Path:
suni4x622TPCfg
The function is used to control the source channel for the transmit path.
INT4 suni4x622TPCfg(sSUNI4x622_HNDL deviceHandle,
UINT1 channel, UINT1 srcChan)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: transmit path channel number
: source channel number
srcChan
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Enable or disable the channel APS cross connect: suni4x622APSXcnntCfg
The function is used to control the channel APS cross connect.
INT4 suni4x622APSXcnntCfg(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT1 enable)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
enable
: enable or disable
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Resetting APS Receive Link: suni4x622APSResetRxLink
The function is used to reset the receive APS link.
INT4 suni4x622APSResetRxLink(sSUNI4x622_HNDL
Prototype
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
79
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
deviceHandle, UINT1 link)
Inputs
deviceHandle
link
: device handle (from suni4x622Add)
: APS link number
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_APS_LINK
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Resetting APS Transmit Link: suni4x622APSResetTxLink
The function is used to reset the transmit APS link.
INT4 suni4x622APSResetTxLink(sSUNI4x622_HNDL
deviceHandle, UINT1 link)
Prototype
Inputs
deviceHandle
link
: device handle (from suni4x622Add)
: APS link number
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_APS_LINK
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
4.11 Interrupt Service Functions
This section describes interrupt-service functions that perform the following tasks:
•
•
•
Set, get and clear the interrupt enable mask
Read and process the interrupt-status registers
Poll and process the interrupt-status registers
See page 23 for an explanation of our interrupt servicing architecture.
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
80
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Configuring ISR Processing: suni4x622ISRConfig
Allows the USER to configure how ISR processing is to be handled: polling
(SUNI4x622_POLL_MODE) or interrupt driven (SUNI4x622_ISR_MODE). If polling is selected,
the USER is responsible for calling periodically suni4x622Poll to collect exception data from
the device.
INT4 suni4x622ISRConfig(sSUNI4x622_HNDL deviceHandle,
eSUNI4x622_ISR_MODE mode)
Prototype
Inputs
deviceHandle
mode
: device handle (from suni4x622Add)
: mode of operation
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Getting Device Interrupt Enable Mask: suni4x622GetMask
This function returns the contents of the interrupt mask registers of the S/UNI-4x622 device.
INT4 suni4x622GetMask(sSUNI4x622_HNDL deviceHandle,
sSUNI4x622_MASK_ISR *pmask)
Prototype
Inputs
deviceHandle
pmask
: device handle (from suni4x622Add)
: (pointer to) mask structure
Outputs
Returns
pmask
: (pointer to) updated mask structure
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Setting Device Interrupt Enable Mask: suni4x622SetMask
This function sets the contents of the interrupt mask registers of the S/UNI-4x622 device. Any
bits that are set in the passed structure are set in the associated S/UNI-4x622 registers.
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
81
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
INT4 suni4x622SetMask(sSUNI4x622_HNDL deviceHandle,
sSUNI4x622_MASK_ISR *pmask)
Prototype
Inputs
deviceHandle
pmask
: device handle (from suni4x622Add)
: (pointer to) mask structure
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
May change the operation of the ISR / DPR
Clearing Device Interrupt Enable Mask: suni4x622ClrMask
This function clears individual interrupt bits and registers in the S/UNI-4x622 device. Any bits
that are set in the passed structure are cleared in the associated S/UNI-4x622 registers.
INT4 suni4x622ClrMask(sSUNI4x622_HNDL deviceHandle,
sSUNI4x622_MASK_ISR *pmask)
Prototype
Inputs
deviceHandle
pmask
: device handle (from suni4x622Add)
: (pointer to) mask structure
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
May change the operation of the ISR / DPR
Getting SOH Interrupt Enable Mask: suni4x622GetMaskSOH
This function returns the contents of the SOH interrupt mask registers of the S/UNI-4x622
device.
INT4 suni4x622GetMaskSOH(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_MASK_ISR
*pmask)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
82
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
pmask
pmask
: (pointer to) mask structure
: (pointer to) updated mask structure
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Setting SOH Interrupt Enable Mask: suni4x622SetMaskSOH
This function sets the contents of the SOH interrupt mask registers of the S/UNI-4x622 device.
Any bits that are set in the passed structure are set in the associated S/UNI-4x622 registers.
INT4 suni4x622SetMaskSOH(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_MASK_ISR
*pmask)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pmask
: (pointer to) mask structure
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
May change the operation of the ISR / DPR
Clearing SOH Interrupt Enable Mask: suni4x622ClrMaskSOH
This function clears SOH individual interrupt bits and registers in the S/UNI-4x622 device. Any
bits that are set in the passed structure are cleared in the associated S/UNI-4x622 registers.
INT4 suni4x622ClrMaskSOH(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_MASK_ISR
*pmask)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pmask
: (pointer to) mask structure
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
83
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
May change the operation of the ISR / DPR
Getting LOH Interrupt Enable Mask: suni4x622GetMaskLOH
This function returns the contents of the LOH interrupt mask registers of the S/UNI-4x622
device.
INT4 suni4x622GetMaskLOH(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_MASK_ISR
*pmask)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pmask
: (pointer to) mask structure
Outputs
Returns
pmask
: (pointer to) updated mask structure
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Setting LOH Interrupt Enable Mask: suni4x622SetMaskLOH
This function sets the contents of the LOH interrupt mask registers of the S/UNI-4x622 device.
Any bits that are set in the passed structure are set in the associated S/UNI-4x622 registers.
INT4 suni4x622SetMaskLOH(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_MASK_ISR
*pmask)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pmask
: (pointer to) mask structure
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
84
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
May change the operation of the ISR / DPR
Clearing LOH Interrupt Enable Mask: suni4x622ClrMaskLOH
This function clears LOH individual interrupt bits and registers in the S/UNI-4x622 device. Any
bits that are set in the passed structure are cleared in the associated S/UNI-4x622 registers.
INT4 suni4x622ClrMaskLOH(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_MASK_ISR
*pmask)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pmask
: (pointer to) mask structure
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
May change the operation of the ISR / DPR
Getting RPOH Interrupt Enable Mask: suni4x622GetMaskRPOH
This function returns the contents of the RPOH interrupt mask registers of the S/UNI-4x622
device.
INT4 suni4x622GetMaskRPOH(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_MASK_ISR
*pmask)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pmask
: (pointer to) mask structure
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
85
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Outputs
Returns
pmask
: (pointer to) updated mask structure
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Setting RPOH Interrupt Enable Mask: suni4x622SetMaskRPOH
This function sets the contents of the RPOH interrupt mask registers of the S/UNI-4x622 device.
Any bits that are set in the passed structure are set in the associated S/UNI-4x622 registers.
INT4 suni4x622SetMaskRPOH(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_MASK_ISR
*pmask)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pmask
: (pointer to) mask structure
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
May change the operation of the ISR / DPR
Clearing RPOH Interrupt Enable Mask: suni4x622ClrMaskRPOH
This function clears RPOH individual interrupt bits and registers in the S/UNI-4x622 device. Any
bits that are set in the passed structure are cleared in the associated S/UNI-4x622 registers.
INT4 suni4x622ClrMaskRPOH(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_MASK_ISR
*pmask)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pmask
: (pointer to) mask structure
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
86
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
May change the operation of the ISR / DPR
Getting PYLD Interrupt Enable Mask: suni4x622GetMaskPYLD
This function returns the contents of the PYLD interrupt mask registers of the S/UNI-4x622
device.
INT4 suni4x622GetMaskPYLD(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_MASK_ISR
*pmask)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pmask
: (pointer to) mask structure
Outputs
Returns
pmask
: (pointer to) updated mask structure
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Setting PYLD Interrupt Enable Mask: suni4x622SetMaskPYLD
This function sets the contents of the PYLD interrupt mask registers of the S/UNI-4x622 device.
Any bits that are set in the passed structure are set in the associated S/UNI-4x622 registers.
INT4 suni4x622SetMaskPYLD(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_MASK_ISR
*pmask)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pmask
: (pointer to) mask structure
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
87
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
May change the operation of the ISR / DPR
Clearing PYLD Interrupt Enable Mask: suni4x622ClrMaskPYLD
This function clears PYLD individual interrupt bits and registers in the S/UNI-4x622 device. Any
bits that are set in the passed structure are cleared in the associated S/UNI-4x622 registers.
INT4 suni4x622ClrMaskPYLD(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_MASK_ISR
*pmask)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pmask
: (pointer to) mask structure
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
May change the operation of the ISR / DPR
Getting FIFO Interrupt Enable Mask: suni4x622GetMaskFIFO
This function returns the contents of the FIFO interrupt mask registers of the S/UNI-4x622
device.
INT4 suni4x622GetMaskFIFO(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_MASK_ISR
*pmask)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pmask
: (pointer to) mask structure
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
88
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Outputs
Returns
pmask
: (pointer to) updated mask structure
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Setting FIFO Interrupt Enable Mask: suni4x622SetMaskFIFO
This function sets the contents of the FIFO interrupt mask registers of the S/UNI-4x622 device.
Any bits that are set in the passed structure are set in the associated S/UNI-4x622 registers.
INT4 suni4x622SetMaskFIFO(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_MASK_ISR
*pmask)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pmask
: (pointer to) mask structure
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
May change the operation of the ISR / DPR
Clearing FIFO Interrupt Enable Mask: suni4x622ClrMaskFIFO
This function clears FIFO individual interrupt bits and registers in the S/UNI-4x622 device. Any
bits that are set in the passed structure are cleared in the associated S/UNI-4x622 registers.
INT4 suni4x622ClrMaskFIFO(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_MASK_ISR
*pmask)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pmask
: (pointer to) mask structure
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
89
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
May change the operation of the ISR / DPR
Getting Line Interface Interrupt Enable Mask: suni4x622GetMaskIntfLine
This function returns the contents of the per-channel line interface interrupt mask registers of the
S/UNI-4x622 device.
INT4 suni4x622GetMaskIntfLine(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_MASK_ISR
*pmask)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pmask
: (pointer to) mask structure
Outputs
Returns
pmask
: (pointer to) updated mask structure
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Setting Line Interface Interrupt Enable Mask: suni4x622SetMaskIntfLine
This function sets the contents of the per-channel line interface interrupt mask registers of the
S/UNI-4x622 device.
INT4 suni4x622SetMaskIntfLine(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_MASK_ISR
*pmask)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pmask
: (pointer to) mask structure
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
90
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Outputs
Returns
pmask
: (pointer to) updated mask structure
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Clearing Line Interface Interrupt Enable Mask: suni4x622ClrMaskIntfLine
This function clears the contents of the per-channel line interface interrupt mask registers of the
S/UNI-4x622 device.
INT4 suni4x622ClrMaskIntfLine(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_MASK_ISR
*pmask)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pmask
: (pointer to) mask structure
Outputs
Returns
pmask
: (pointer to) updated mask structure
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Getting System Interface Interrupt Enable Mask: suni4x622GetMaskSysIntf
This function returns the contents of the system interface interrupt mask registers of the S/UNI-
4x622 device.
INT4 suni4x622GetMaskSysIntf(sSUNI4x622_HNDL
deviceHandle, sSUNI4x622_MASK_ISR *pmask)
Prototype
Inputs
deviceHandle
pmask
: device handle (from suni4x622Add)
: (pointer to) mask structure
Outputs
pmask
: (pointer to) updated mask structure
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
91
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Setting System Interface Interrupt Enable Mask: suni4x622SetMaskSysIntf
This function sets the contents of the system interface interrupt mask registers of the S/UNI-
4x622 device.
INT4 suni4x622SetMaskSysIntf(sSUNI4x622_HNDL
deviceHandle, sSUNI4x622_MASK_ISR *pmask)
Prototype
Inputs
deviceHandle
pmask
: device handle (from suni4x622Add)
: (pointer to) mask structure
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
May change the operation of the ISR / DPR
Clearing System Interface Interrupt Enable Mask: suni4x622ClrMaskSysIntf
This function clears systerm interface interrupt bits and registers in the S/UNI-4x622 device.
INT4 suni4x622ClrMaskSysIntf(sSUNI4x622_HNDL
deviceHandle, sSUNI4x622_MASK_ISR *pmask)
Prototype
Inputs
deviceHandle
pmask
: device handle (from suni4x622Add)
: (pointer to) mask structure
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
92
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
May change the operation of the ISR / DPR
Side Effects
Getting APS Interrupt Enable Mask: suni4x622GetMaskAPS
This function returns the contents of the APS interrupt mask registers of the S/UNI-4x622 device.
INT4 suni4x622GetMaskAPS(sSUNI4x622_HNDL
deviceHandle, UINT1 apslink, sSUNI4x622_MASK_ISR
*pmask)
Prototype
Inputs
deviceHandle
apslink
: device handle (from suni4x622Add)
: APS link number
pmask
: (pointer to) mask structure
Outputs
Returns
pmask
: (pointer to) updated mask structure
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_APSLINK
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Setting APS Interrupt Enable Mask: suni4x622SetMaskAPS
This function sets the contents of the APS interrupt mask registers of the S/UNI-4x622 device.
INT4 suni4x622SetMaskAPS(sSUNI4x622_HNDL
deviceHandle, UINT1 apslink, sSUNI4x622_MASK_ISR
*pmask)
Prototype
Inputs
deviceHandle
apslink
: device handle (from suni4x622Add)
: APS link number
pmask
: (pointer to) mask structure
Outputs
Returns
pmask
: (pointer to) updated mask structure
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_APSLINK
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
93
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Clearing APS Interrupt Enable Mask: suni4x622ClrMaskAPS
This function clears the contents of the APS interrupt mask registers of the S/UNI-4x622 device.
INT4 suni4x622ClrMaskAPS(sSUNI4x622_HNDL
deviceHandle, UINT1 apslink, sSUNI4x622_MASK_ISR
*pmask)
Prototype
Inputs
deviceHandle
apslink
: device handle (from suni4x622Add)
: APS link number
pmask
: (pointer to) mask structure
Outputs
Returns
pmask
: (pointer to) updated mask structure
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_APSLINK
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Polling the Interrupt Status Registers: suni4x622Poll
This function commands the driver to poll the interrupt registers in the device. The call will fail
unless the device was initialized (via suni4x622Init) or configured (via
suni4x622ISRConfig) into polling mode.
INT4 suni4x622Poll(sSUNI4x622_HNDL deviceHandle)
Prototype
Inputs
deviceHandle
: device handle (from suni4x622Add)
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_MODE
SUNI4x622_FAILURE
SUNI4x622_ACTIVE
Valid States
Side Effects
Pseudocode
None
Begin
if device is configured in polling mode
call suni4x622ISR
End
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
94
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Interrupt-Service Routine: suni4x622ISR
This function reads the state of the interrupt registers in the S/UNI-4x622 and stores them in an
ISV. Performs whatever functions are needed to clear the interrupt, from simply clearing bits to
complex functions. This routine is called by the application code, from within
sysSuni4x622ISRHandler. If ISR mode is configured all interrupts that were detected are
disabled and the ISV is returned to the application. Note that the application is then responsible
for sending this buffer to the DPR task. If polling mode is selected, no ISV is returned to the
application and the DPR is called directly with the ISV.
void * suni4x622ISR(sSUNI4x622_HNDL deviceHandle)
Prototype
Inputs
deviceHandle
: device handle (from suni4x622Add)
None
Outputs
(pointer to) ISV buffer (to send to the DPR) or NULL (pointer)
Returns
SUNI4x622_ACTIVE
Valid States
Side Effects
Pseudocode
None
Begin
get an ISV buffer
update ISV with current interrupt status
if no valid interrupt condition
return NULL
if in ISR mode
disable all detected interrupts
return ISV
else (Polling mode)
call suni4x622DPR
output NULL
End
Deferred-Processing Routine: suni4x622DPR
This function acts on data contained in the passed ISV, allocates one or more DPV buffers (via
sysSuni4x622DPVBufferGet) and invokes one or more callbacks (if defined and enabled).
This routine is called by the application code, within sysSuni4x622DPRTask. Note that the
callbacks are responsible for releasing the passed DPV. It is recommended that it be done as soon
as possible to avoid running out of DPV buffers.
void suni4x622DPR(void *ptmpisv)
Prototype
Inputs
ptmpisv
None
: (pointer to) ISV buffer
Outputs
Returns
None
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
95
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
SUNI4x622_ACTIVE
Valid States
Side Effects
Pseudocode
None
Begin
for each ISV element (section)
get and fill out a DPV buffer
if callback (from suni4x622Init) is not NULL
invoke (section) callback
release ISV by calling sysSuni4x622ISVBufferRtn
End
4.12 Alarm, Status and Counts Functions
Getting the Device Status: suni4x622GetStatusChan
This function reports the current SOH, LOH, RPOH, payload and line interface status for a
specific channel.
INT4 suni4x622GetStatusChan(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_STATUS_CHAN
*pstatusChan)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pstatusChan
: (pointer to) channel status block
Outputs
Returns
pstatusChan
: (pointer to) updated channel status block
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Getting the Device Status: suni4x622GetStatusSOH
This function retrieves the SOH status.
INT4 suni4x622GetStatusSOH(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_STATUS_SOH
*pstatusSOH)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
96
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
pstatusSOH
pstatusSOH
: (pointer to) SOH status block
: (pointer to) updated SOH status block
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Getting the Device Status: suni4x622GetStatusLOH
This function retrieves the LOH status.
INT4 suni4x622GetStatusLOH(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_STATUS_LOH
*pstatusLOH)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pstatusLOH
: (pointer to) LOH status block
Outputs
Returns
pstatusLOH
: (pointer to) updated LOH status block
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Getting the Device Status: suni4x622GetStatusRPOH
This function retrieves the RPOH status.
INT4 suni4x622GetStatusRPOH(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_STATUS_RPOH
*pstatusRPOH)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pstatusRPOH
: (pointer to) RPOH status block
Outputs
pstatusRPOH
: (pointer to) updated RPOH status block
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
97
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Getting the Device Status: suni4x622GetStatusIntfLine
This function retrieves the Line Interface status.
INT4 suni4x622GetStatusIntfLine(sSUNI4x622_HNDL
deviceHandle, UINT1 channel,
Prototype
sSUNI4x622_STATUS_INTF_LINE *pstatusLine)
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pstatusLine
: (pointer to) LINE status block
Outputs
Returns
pstatusLine
: (pointer to) updated LINE status block
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Getting the Device Status: suni4x622GetStatusPYLD
This function retrieves the payload status.
INT4 suni4x622GetStatusPYLD(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_STATUS_PYLD
*pstatusPYLD)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pstatusPYLD
: (pointer to) PYLD status block
Outputs
Returns
pstatusPYLD
: (pointer to) updated PYLD status block
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
98
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Getting the Device Counts: suni4x622GetCountsChan
This function retrieves all the counts for a specific channel.
INT4 suni4x622GetCountsChan(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_CNTR_CHAN
*pcountsChan)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pcountsChan
: (pointer to) counter block
Outputs
Returns
pcountsChan
: (pointer to) updated counter block
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Getting the Device Counts: suni4x622GetCountsSOH
This function retrieves all the SOH counts.
INT4 suni4x622GetCountsSOH(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_CNTR_SOH
*pcountsSOH)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pcountsSOH
: (pointer to) SOH counter block
Outputs
Returns
pcountsSOH
: (pointer to) updated SOH counter block
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
99
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Getting the Device Counts: suni4x622GetCountsLOH
This function retrieves all the LOH counts.
INT4 suni4x622GetCountsLOH(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_CNTR_LOH
*pcountsLOH)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pcountsLOH
: (pointer to) LOH counter block
Outputs
Returns
pcountsLOH
: (pointer to) updated LOH counter block
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Getting the Device Counts: suni4x622GetCountsRPOH
This function retrieves all the RPOH counts.
INT4 suni4x622GetCountsRPOH(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_CNTR_RPOH
*pcountsRPOH)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pcountsRPOH
: (pointer to) RPOH counter block
Outputs
Returns
pcountsRPOH
: (pointer to) updated RPOH counter block
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
100
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
None
Side Effects
Getting the Device Counts: suni4x622GetCountsPYLD
This function retrieves all the PYLD counts.
INT4 suni4x622GetCountsPYLD(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, sSUNI4x622_CNTR_PYLD
*pcountsPYLD)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
pcountsPYLD
: (pointer to) PYLD counter block
Outputs
Returns
pcountsPYLD
: (pointer to) updated PYLD counter block
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ACTIVE, SUNI4x622_INACTIVE
Valid States
Side Effects
None
4.13 Device Diagnostics
Testing Register Accesses: suni4x622DiagTestReg
This function verifies the hardware access to the device registers by writing and reading back
values.
INT4 suni4x622DiagTestReg(sSUNI4x622_HNDL
deviceHandle)
Prototype
Inputs
deviceHandle
: device handle (from suni4x622Add)
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_PRESENT, SUNI4x622_INACTIVE
Valid States
Side Effects
None
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
101
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Enabling Line Loopbacks: suni4x622DiagLineLoop
This function clears / sets a Line Loopback. It is up to the USER to perform any tests on the
looped data.
INT4 suni4x622DiagLineLoop(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT2 enable)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
enable
: sets loop if non-zero, else clears loop
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE
Valid States
Side Effects
Will inhibit the flow of active data
Enabling Path Diagnostic Loopbacks: suni4x622DiagPathLoop
This function clears / sets a Path Diagnostic Loopback. It is up to the USER to perform any tests
on the looped data.
INT4 suni4x622DiagPathLoop(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT2 enable)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
enable
: sets loop if non-zero, else clears loop
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE
Valid States
Side Effects
Will inhibit the flow of active data
Enabling Data Diagnostic Loopbacks: suni4x622DiagDataLoop
This function clears / sets a Data Diagnostic Loopback. It is up to the USER to perform any tests
on the looped data.
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
102
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
INT4 suni4x622DiagDataLoop(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT2 enable)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
enable
: sets loop if non-zero, else clears loop
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE
Valid States
Side Effects
Will inhibit the flow of active data
Enabling Parallel Diagnostics Loopbacks: suni4x622DiagParaLoop
This function clears / sets a Parallel Diagnostics Loopback. It is up to the USER to perform any
tests on the looped data.
INT4 suni4x622DiagParaLoop(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT2 enable)
Prototype
Inputs
deviceHandle
channel
: device handle (from suni4x622Add)
: channel number
enable
: sets loop if non-zero, else clears loop
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE
Valid States
Side Effects
Will inhibit the flow of active data
Enabling Serial Diagnostics Loopbacks: suni4x622DiagSerialLoop
This function clears / sets a Serial Diagnostics Loopback. It is up to the USER to perform any
tests on the looped data.
INT4 suni4x622DiagSerialLoop(sSUNI4x622_HNDL
deviceHandle, UINT1 channel, UINT2 enable)
Prototype
Inputs
deviceHandle
: device handle (from suni4x622Add)
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
103
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
channel
enable
: channel number
: sets loop if non-zero, else clears loop
None
Outputs
Returns
Success = SUNI4x622_SUCCESS
Failure = SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ACTIVE
Valid States
Side Effects
Will inhibit the flow of active data
4.14 Callback Functions
The S/UNI-4x622 driver has the capability to callback to functions within the USER code when
certain events occur. These events and their associated callback routine declarations are detailed
below. There is no USER code action that is required by the driver for these callbacks – the
USER is free to implement these callbacks in any manner or else they can be deleted from the
driver.
The names given to the callback functions are given as examples only. The addresses of the
callback functions invoked by the suni4x622DPR function are passed during the
suni4x622Init call (inside a DIV). However the USER shall use the exact same prototype. The
application is left responsible for releasing the passed DPV as soon as possible (to avoid running
out of DPV buffers) by calling sysSuni4x622DPVBufferRtn either within the callback
function or later inside the application code.
Notifying the Application of SOH Events: cbackSuni4x622SOH
This callback function is provided by the USER and is used by the DPR to report significant SOH
section events back to the application. This function should be non-blocking. Typically, the
callback routine sends a message to another task with the event identifier and other context
information. The task that receives this message can then process this information according to
the system requirements. Note: the callback function’s addresses are passed to the driver doing
the suni4x622Init call. If the address of the callback function was passed as a NULL at
initialization no callback will be made.
void cbackSuni4x622SOH(sSUNI4x622_USR_CTXT usrCtxt,
sSUNI4x622_DPV *pdpv)
Prototype
Inputs
usrCtxt
pdpv
: user context (from suni4x622Add)
: (pointer to) DPV that describes this event
None
None
Outputs
Returns
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
104
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
SUNI4x622_ACTIVE
Valid States
Side Effects
None
Notifying the Application of LOH Events: cbackSuni4x622LOH
This callback function is provided by the USER and is used by the DPR to report significant LOH
section events back to the application. This function should be non-blocking. Typically, the
callback routine sends a message to another task with the event identifier and other context
information. The task that receives this message can then process this information according to
the system requirements. Note: the callback function’s addresses are passed to the driver doing
the suni4x622Init call. If the address of the callback function was passed as a NULL at
initialization no callback will be made.
void cbackSuni4x622LOH(sSUNI4x622_USR_CTXT usrCtxt,
sSUNI4x622_DPV *pdpv)
Prototype
Inputs
usrCtxt
pdpv
: user context (from suni4x622Add)
: (pointer to) DPV that describes this event
None
Outputs
None
Returns
SUNI4x622_ACTIVE
Valid States
Side Effects
None
Notifying the Application of RPOH Events: cbackSuni4x622RPOH
This callback function is provided by the USER and is used by the DPR to report significant
RPOH section events back to the application. This function should be non-blocking. Typically,
the callback routine sends a message to another task with the event identifier and other context
information. The task that receives this message can then process this information according to
the system requirements. Note: the callback function’s addresses are passed to the driver doing
the suni4x622Init call. If the address of the callback function was passed as a NULL at
initialization no callback will be made.
void cbackSuni4x622RPOH(sSUNI4x622_USR_CTXT usrCtxt,
sSUNI4x622_DPV *pdpv)
Prototype
Inputs
usrCtxt
pdpv
: user context (from suni4x622Add)
: (pointer to) DPV that describes this event
None
Outputs
None
Returns
SUNI4x622_ACTIVE
Valid States
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
105
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
None
Side Effects
Notifying the Application of PYLD Events: cbackSuni4x622PYLD
This callback function is provided by the USER and is used by the DPR to report significant
PYLD section events back to the application. This function should be non-blocking. Typically, the
callback routine sends a message to another task with the event identifier and other context
information. The task that receives this message can then process this information according to
the system requirements. Note: the callback function’s addresses are passed to the driver doing
the suni4x622Init call. If the address of the callback function was passed as a NULL at
initialization no callback will be made.
void cbackSuni4x622PYLD(sSUNI4x622_USR_CTXT usrCtxt,
sSUNI4x622_DPV *pdpv)
Prototype
Inputs
usrCtxt
pdpv
: user context (from suni4x622Add)
: (pointer to) DPV that describes this event
None
Outputs
None
Returns
SUNI4x622_ACTIVE
Valid States
Side Effects
None
Notifying the Application of SYSINTF Events: cbackSuni4x622SysIntf
This callback function is provided by the USER and is used by the DPR to report significant
System Interface section events back to the application. This function should be non-blocking.
Typically, the callback routine sends a message to another task with the event identifier and other
context information. The task that receives this message can then process this information
according to the system requirements. Note: the callback function’s addresses are passed to the
driver doing the suni4x622Init call. If the address of the callback function was passed as a
NULL at initialization no callback will be made.
void cbackSuni4x622SysIntf(sSUNI4x622_USR_CTXT
usrCtxt, sSUNI4x622_DPV *pdpv)
Prototype
Inputs
usrCtxt
pdpv
: user context (from suni4x622Add)
: (pointer to) DPV that describes this event
None
Outputs
None
Returns
SUNI4x622_ACTIVE
Valid States
Side Effects
None
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
106
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Application Programming Interface
Notifying the Application of FIFO Events: cbackSuni4x622FIFO
This callback function is provided by the USER and is used by the DPR to report significant
FIFO section events back to the application. This function should be non-blocking. Typically, the
callback routine sends a message to another task with the event identifier and other context
information. The task that receives this message can then process this information according to
the system requirements. Note: the callback function’s addresses are passed to the driver doing
the suni4x622Init call. If the address of the callback function was passed as a NULL at
initialization no callback will be made.
void cbackSuni4x622FIFO(sSUNI4x622_USR_CTXT usrCtxt,
sSUNI4x622_DPV *pdpv)
Prototype
Inputs
usrCtxt
pdpv
: user context (from suni4x622Add)
: (pointer to) DPV that describes this event
None
Outputs
None
Returns
SUNI4x622_ACTIVE
Valid States
Side Effects
None
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
107
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Hardware Interface
5 HARDWARE INTERFACE
The S/UNI-4x622 driver interfaces directly with the USER’s hardware. In this section, a listing of
each point of interface is shown, along with a declaration and any specific porting instructions. It
is the responsibility of the USER to connect these requirements into the hardware, either by
defining a macro or by writing a function for each item listed. Care should be taken when
matching parameters and return values.
5.1 Device I/O
Reading from a Device Register: sysSuni4x622Read
This function is the most basic hardware connection. It reads the contents of a specific register
location. This macro should be UINT1 oriented and should be defined by the user to reflect the
target system’s addressing logic. There is no need for error recovery in this function.
#define sysSuni4x622Read(ba, offset)
Format
Prototype
Inputs
UINT1 sysSuni4x622Read(void * ba, UINT2 offset)
ba
: base address
offset
: offset from the base address
None
Outputs
Returns
value read from the addressed register location
Writing to a Device Register: sysSuni4x622Write
This function is the most basic hardware connection. It writes the supplied value to the specific
register location. This macro should be UINT1 oriented and should be defined by the user to
reflect the target system’s addressing logic. There is no need for error recovery in this function.
#define sysSuni4x622Write(ba, offset, data)
Format
UINT1 sysSuni4x622Write(void * ba, UINT2 offset,
UINT1 data)
Prototype
Inputs
ba
: base address
offset
data
: offset from the base address
: data to be written
None
Outputs
Returns
Value written to the addressed register location
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
108
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Hardware Interface
Polling a Bit: sysSuni4x622PollBit
This function simply polls a register masked data until it is zero or times out.
#define sysSuni4x622PollBit (base, offset, mask)
Format
INT4 sysSuni4x622PollBit (void *base, UINT2
offset, UINT1 mask)
Prototype
Inputs
base
offset
: base address of device being accessed
: offset to the memory location as it
appears in the hardware data-sheet.
: mask to apply to byte read
mask
None
Outputs
Returns
Success = 0
Failure = <any other value>
5.2 System-Specific Interrupt Servicing
The porting of interrupt servicing routines and tasks across platforms is a complex task. There are
many different implementations of these hardware specific functions. In this driver, the user is
responsible for:
•
Writing an interrupt handler (sysSuni4x622ISRHandler) that will be installed in the
interrupt vector table of the system processor. This handler shall call suni4x622ISR for
each device that has interrupt servicing enabled to perform the Interrupt-Service Routine
(ISR) related activity required by each device
•
Writing the routine that installs the ISR handler in the vector table of the system processor
and spawns the DPR task (sysSuni4x622ISRHandlerInstall)
•
Writing the routine that removes the ISR Handler from the vector table of the system
processor and deletes/suspends the DPR task (sysSuni4x622ISRHandlerRemove)
Installing the ISR Handler: sysSuni4x622ISRHandlerInstall
This function installs the USER-supplied Interrupt-Service Routine (ISR),
sysSuni4x622ISRHandler, into the processor’s interrupt vector table.
#define sysSuni4x622ISRHandlerInstall()
Format
Prototype
Inputs
INT4 sysSuni4x622ISRHandlerInstall(void)
None
None
Outputs
Returns
Success = 0
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
109
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Hardware Interface
Failure = <any other value>
Begin
Pseudocode
install sysSuni4x622ISRHandler in processor’s interrupt vector table
End
ISR Handler: sysSuni4x622ISRHandler
This routine is invoked when one or more S/UNI-4x622 devices raise the interrupt line to the
microprocessor. This routine invokes the driver-provided routine, suni4x622ISR, for each
device registered with the driver.
#define sysSuni4x622ISRHandler(intId)
Void sysSuni4x622ISRHandler(UINT4 intId)
Format
Prototype
Inputs
intId
None
None
Begin
: interrupt identifier
Outputs
Returns
Pseudocode
for each device registered with the driver
if ISR mode == ISR_MODE call suni4x622ISR
if returned ISV buffer is not NULL
send ISV buffer to the DPR
End
DPR Task: sysSuni4x622DPRTask
This routine is installed as a separate task within the RTOS. It runs periodically and retrieves the
interrupt status information sent to it by suni4x622ISR and then invokes suni4x622DPR for
the appropriate device.
#define sysSuni4x622DPRTask()
Void sysSuni4x622DPRTask(void)
Format
Prototype
Inputs
None
None
None
Outputs
Returns
Pseudocode
Begin
do
wait for an ISV buffer (sent by suni4x622ISR)
call suni4x622DPR with that ISV
loop forever
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
110
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Hardware Interface
End
Removing the ISR Handler: sysSuni4x622ISRHandlerRemove
This function disables Interrupt processing for this device. Removes the USER-supplied
Interrupt-Service Routine (ISR), sysSuni4x622ISRHandler, from the processor’s interrupt
vector table.
#define sysSuni4x622ISRHandlerRemove()
Format
Void sysSuni4x622ISRHandlerRemove(void)
Prototype
Inputs
None
None
None
Outputs
Returns
Pseudocode
Begin
remove sysSuni4x622ISRHandler from the processor’s interrupt
vector table
End
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
111
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
RTOS Interface
6 RTOS INTERFACE
The S/UNI-4x622 driver requires the use of some RTOS resources. In this section, a listing of
each required resource is shown, along with a declaration and any specific porting instructions. It
is the responsibility of the USER to connect these requirements into the RTOS, either by defining
a macro or writing a function for each item listed. Care should be taken when matching
parameters and return values.
6.1 Memory Allocation / De-Allocation
Allocating Memory: sysSuni4x622MemAlloc
This function allocates specified number of bytes of memory.
#define sysSuni4x622MemAlloc(numBytes)
Format
Prototype
Inputs
UINT1 *sysSuni4x622MemAlloc(UINT4 numBytes)
numBytes
: number of bytes to be allocated
None
Outputs
Returns
Success = Pointer to first byte of allocated memory
Failure = NULL pointer (memory allocation failed)
Initialize Memory: sysSuni4x622MemSet
This function initialize a block of memory with a given value.
#define sysSuni4x622MemSet(pmem, val, sz)
Format
void sysSuni4x622MemSet(UINT1 *pmem, UINT1 val, UINT2
sz)
Prototype
Inputs
pmem
val
sz
: (pointer to) the first byte of the memory
: value to set
: size
None
None
Outputs
Returns
Copy Memory: sysSuni4x622MemCpy
This function copies a block of memory.
#define sysSuni4x622MemSet(pdst, psrc, sz)
Format
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
112
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
RTOS Interface
void sysSuni4x622MemSet(UINT1 *pdst, UINT1 *psrc,
UINT2 sz)
Prototype
Inputs
pdst
psrc
sz
: (pointer to) the destination memory
: (pointer to) the source memory
: size
None
None
Outputs
Returns
Freeing Memory: sysSuni4x622MemFree
This function frees memory allocated using sysSuni4x622MemAlloc.
#define sysSuni4x622MemFree(pfirstByte)
Format
Prototype
Inputs
void sysSuni4x622MemFree(UINT1 *pfirstByte)
pfirstByte : (pointer to) first byte of the memory region being de-
allocated
None
None
Outputs
Returns
6.2 Buffer Management
All operating systems provide some sort of buffer system, particularly for use in sending and
receiving messages. The following calls, provided by the USER, allow the driver to Get and
Return buffers from the RTOS. It is the USER’s responsibility to create any special resources or
pools to handle buffers of these sizes during the sysSuni4x622BufferStart call.
Starting Buffer Management: sysSuni4x622BufferStart
This function alerts the RTOS that the time has come to make sure ISV buffers and DPV buffers
are available and sized correctly. This may involve the creation of new buffer pools and it may
involve nothing, depending on the RTOS.
#define sysSuni4x622BufferStart()
Format
Prototype
Inputs
INT4 sysSuni4x622BufferStart(void)
None
None
Outputs
Returns
Success = 0
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
113
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
RTOS Interface
Failure = <any other value>
Getting an ISV Buffer: sysSuni4x622ISVBufferGet
This function gets a buffer from the RTOS that will be used by the ISR code to create an
Interrupt-Service Vector (ISV). The ISV consists of data transferred from the devices interrupt
status registers.
#define sysSuni4x622ISVBufferGet()
Format
Prototype
Inputs
sSUNI4x622_ISV *sysSuni4x622ISVBufferGet(void)
None
None
Outputs
Returns
Success = (pointer to) a ISV buffer
Failure = NULL (pointer)
Returning an ISV Buffer: sysSuni4x622ISVBufferRtn
This function returns an ISV buffer to the RTOS when the information in the block is no longer
needed by the DPR.
#define sysSuni4x622ISVBufferRtn(pISV)
Format
Prototype
Inputs
void sysSuni4x622ISVBufferRtn(sSUNI4x622_ISV *pISV)
pISV
None
None
: (pointer to) a ISV buffer
Outputs
Returns
Getting a DPV Buffer: sysSuni4x622DPVBufferGet
This function gets a buffer from the RTOS that will be used by the DPR code to create a
Deferred-Processing Vector (DPV). The DPV consists of information about the state of the device
that is to be passed to the USER via a callback function.
#define sysSuni4x622DPVBufferGet()
Format
Prototype
Inputs
sSUNI4x622_DPV *sysSuni4x622DPVBufferGet(void)
None
None
Outputs
Returns
Success = (pointer to) a DPV buffer
Failure = NULL (pointer)
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
114
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
RTOS Interface
Returning a DPV Buffer: sysSuni4x622DPVBufferRtn
This function returns a DPV buffer to the RTOS when the information in the block is no longer
needed by the DPR.
#define sysSuni4x622DPVBufferRtn(pDPV)
Format
Prototype
Inputs
Void sysSuni4x622DPVBufferRtn(sSUNI4x622_DPV *pDPV)
pDPV
None
None
: (pointer to) a DPV buffer
Outputs
Returns
Stopping Buffer Management: sysSuni4x622BufferStop
This function alerts the RTOS that the driver no longer needs any of the ISV buffers or DPV
buffers and that if any special resources were created to handle these buffers, they can be deleted
now.
#define sysSuni4x622BufferStop()
Format
Prototype
Inputs
Void sysSuni4x622BufferStop(void)
None
None
None
Outputs
Returns
6.3 Timers
Sleeping a Task: sysSuni4x622TimerSleep
This function suspends execution of a driver task for a specified number of milliseconds.
#define sysSuni4x622TimerSleep(time)
Void sysSuni4x622TimerSleep(UINT4 time)
Format
Prototype
Inputs
time
: sleep time in milliseconds
None
Outputs
Returns
Success = 0
Failure = <any other value>
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
115
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
RTOS Interface
6.4 Preemption
Disabling Preemption: sysSuni4x622PreemptDisable
This routine prevents the calling task from being preempted. If the driver is in interrupt mode, this
routine locks out all interrupts as well as other tasks in the system. If the driver is in polling
mode, this routine locks out other tasks only.
#define sysSuni4x622PreemptDisable()
INT4 sysSuni4x622PreemptDisable(void)
Format
Prototype
Inputs
None
None
Outputs
Returns
Preemption key (passed back as an argument in
sysSuni4x622PreemptEn)
Re-Enabling Preemption: sysSuni4x622PreemptEnable
This routine allows the calling task to be preempted. If the driver is in interrupt mode, this routine
unlocks all interrupts and other tasks in the system. If the driver is in polling mode, this routine
unlocks other tasks only.
#define sysSuni4x622PreemptEnable(key)
Void sysSuni4x622PreemptEnable(INT4 key)
Format
Prototype
Inputs
key
: preemption key (returned by sysSuni4x622PreemptDis)
None
None
Outputs
Returns
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
116
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Porting the S/UNI-4x622 Driver
7 PORTING THE S/UNI-4X622 DRIVER
This section outlines how to port the S/UNI-4x622 device driver to your hardware and OS
platform. However, this manual can offer only guidelines for porting the S/UNI-4x622 driver
because each platform and application is unique.
7.1 Driver Source Files
The C source files listed in the next table contain the code for the S/UNI-4x622 driver. You may
need to modify the code or develop additional code. The code is in the form of constants, macros,
and functions. For the ease of porting, the code is grouped into source files (src) and include
files (inc). The src files contain the functions and the inc files contain the constants and
macros.
7.2 Driver Porting Procedures
The following procedures summarize how to port the S/UNI-4x622 driver to your platform. The
subsequent sections describe these procedures in more detail.
To port the S/UNI-4x622 driver to your platform:
Procedure 1: Port the driver’s OS extensions
Procedure 2: Port the driver to your hardware platform
Procedure 3: Port the driver’s application-specific elements
Procedure 4: Build the driver
Porting Assumptions
The following porting assumptions have been made:
•
•
•
It is assumed that RAM assigned to the driver’s static variables is initialized to ZERO before
any driver function is called.
It is assumed that a RAM stack of 4K is available to all of the driver’s non-ISR functions and
that a RAM stack of 1K is available to the driver’s ISR functions.
It is assumed that there is no memory management or MMU in the system or that all accesses
by the driver, to memory or hardware can be direct.
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
117
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Porting the S/UNI-4x622 Driver
Procedure 1: Porting Driver OS Extensions
The OS extensions encapsulate all OS specific services and data types used by the driver. The
suni4x622_rtos.h file contains data types and compiler-specific data-type definitions. It also
contains macros for OS specific services used by the OS extensions. These OS extensions
include:
•
•
•
•
Task management
Message queues
Events
Memory Management
In addition, you may need to modify functions that use OS specific services, such as utility and
interrupt-event handling functions. The suni4x622_rtos.c file contains the utility and
interrupt-event handler functions that use OS specific services.
To port the driver’s OS extensions:
1. Modify the data types in suni4x622_rtos.h. The number after the type identifies the
data-type size. For example, UINT4 defines a 4-byte (32-bit) unsigned integer. Substitute the
compiler types that yield the desired types as defined in this file.
2. Modify the OS specific services in suni4x622_rtos.h. Redefine the following macros to
the corresponding system calls that your target system supports:
Service
Type
Macro Name
Description
sysSuni4x622MemAlloc
sysSuni4x622MemFree
sysSuni4x622MemSet
sysSuni4x622MemCpy
Memory
Allocates the memory block
Frees the memory block
Set the memory value
Copies the memory block from src to dest
3. Modify the utilities and interrupt services that use OS specific services in the
suni4x622_rtos.c and the suni4x622_hw.c. These file contains the utility and
interrupt-event handler functions that use OS specific services. Refer to the function headers
in this file for a detailed description of each of the functions listed below:
Service Type Function Name
Description
sysSuni4x622TimerSleep
Timer
Sets the task execution delay
in milliseconds
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
118
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Porting the S/UNI-4x622 Driver
sysSuni4x622ISRHandlerIntInstall
sysSuni4x622ISRHandlerRemove
sysSuni4x622ISRHandler
Interrupt
Installs the interrupt handler
for the OS
Removes the interrupt
handler from the OS
Interrupt handler for the
S/UNI-4x622 device
sysSuni4x622DPRTask
Deferred interrupt-processing
routine (DPR)
Procedure 2: Porting Drivers to Hardware Platforms
This section describes how to modify the driver for your hardware platform.
To port the driver to your hardware platform:
1. Modify the low-level device read/write macros in the suni4x622_hw.h file. You may need
to modify the raw read/write access macros (sysSuni4x622ReadReg and
sysSuni4x622WriteReg) to reflect your system’s addressing logic.
2. Define the hardware system-configuration constants in the suni4x622_hw.h file. Modify
the following constants to reflect your system’s hardware configuration:
Device Constant
Description
Default
SUNI4x622_MAX_DEVS
The maximum number of S/UNI-4x622 devices on each
card
5
Procedure 3: Porting Driver Application-Specific Elements
Application specific elements are configuration constants used by the API for developing an
application. This section describes how to modify the application specific elements in the driver.
To port the driver’s application-specific elements:
1. Define the following driver task-related constants for your OS-specific services in file
suni4x622_hw.h and suni4x622_rtos.h:
Task Constant
Description
Default
SUNI4x622_DPR_TASK_PRIORITY
Deferred Task (DPR) task priority
85
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
119
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Porting the S/UNI-4x622 Driver
SUNI4x622_DPR_TASK_STACK_SZ
SUNI4x622_POLL_DELAY
DPR task stack size, in bytes
8192
100
The constant used in polling task mode
defines the interval time in millisecond
between each polling action
SUNI4x622_TASK_SHUTDOWN_DELAY
SUNI4x622_MAX_MSGS
Delay time in millisecond. When
clearing the DPR loop active flag in the
DPR task, this delay is used to
gracefully shutdown the DPR task
before deleting it
100
The queue message depth of the queue
used for pass interrupt context between
the ISR task and DPR task
1000
2. Code the callback functions according to your application. The driver will call these callback
functions when an event occurs on the device. The application is responsible for releasing the
DPV buffer using sysSuni4x622DPVBufferRtn after necessary processing is completed.
These functions must conform to the following prototypes:
void cbackSuni4x622XX(sSUNI4x622_USR_CTXT usrCtxt, sSUNI4x622_DPV
*pdpv)
Procedure 4: Building the Driver
This section describes how to build the driver.
To build the driver:
1. Ensure that the directory variable names in the makefile reflect your actual driver and
directory names.
2. Compile the source files and build the driver using your make utility.
3. Link the driver to your application code.
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
120
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Appendix A: Coding Conventions
APPENDIX A: CODING CONVENTIONS
This section describes the coding conventions used in the implementation of all PMC-Sierra
driver software.
Variable Type Definitions
Table 38: Variable Type Definitions
Type
UINT1
UINT2
UINT4
INT1
Description
unsigned integer – 1 byte
unsigned integer – 2 bytes
unsigned integer – 4 bytes
signed integer – 1 byte
signed integer – 2 bytes
signed integer – 4 bytes
INT2
INT4
Naming Conventions
Table 39 presents a summary of the naming conventions followed by all PMC-Sierra driver
software. A detailed description is then given in the following sub-sections.
The names used in the drivers are verbose enough to make their purpose fairly clear. This makes
the code more readable. Generally, the device’s name or abbreviation appears in prefix.
Table 39: Naming Conventions
Type
Case
Naming convention
Examples
mSUNI4x622_GET_BIT
Macros
Uppercase
prefix with “m” and device abbreviation
SUNI4x622_MAX_POLL
sSUNI4x622_DDB
Constants Uppercase prefix with device abbreviation
Structures Hungarian
Notation
prefix with “s” and device abbreviation
suni4x622Add()
API
Hungarian prefix with device name
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
121
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Appendix A: Coding Conventions
Type
Case
Naming convention
Examples
Functions Notation
sysSuni4x622Read()
Porting
Hungarian
prefix with “sys” and device name
Functions Notation
utilSuni4x622Valid
ateChan()
Other
Functions Notation
Hungarian
maxDevs
Variables
Hungarian
Notation
pmaxDevs
Pointers to Hungarian
prefix variable name with “p”
variables
Notation
suni4x622Mdb
Global
variables
Hungarian prefix with device name
Notation
Macros
•
•
•
Macro names must be all uppercase
Words shall be separated by an underscore
The letter ‘m’ in lowercase is used as a prefix to specify that it is a macro, then the device
abbreviation must appear
•
Example: mSUNI4x622_GET_BIT is a valid name for a macro
Constants
•
•
•
•
Constant names must be all uppercase
Words shall be separated by an underscore
The device abbreviation must appear as a prefix
Example: SUNI4x622_MAX_POLL is a valid name for a constant
Structures
•
•
•
Structure names must be all uppercase
Words shall be separated by an underscore
The letter ‘s’ in lowercase must be used as a prefix to specify that it is a structure, then the
device abbreviation must appear
•
Example: sSUNI4x622_DDB is a valid name for a structure
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
122
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Appendix A: Coding Conventions
Functions
API Functions
•
•
•
Naming of the API functions must follow the hungarian notation
The device’s full name in all lowercase shall be used as a prefix
Example: suni4x622Add() is a valid name for an API function
Porting Functions
Porting functions correspond to all function that are HW and/or RTOS dependent
•
•
•
•
Naming of the porting functions must follow the hungarian notation
The ‘sys’ prefix shall be used to indicate a porting function
The device’s name starting with an uppercase must follow the prefix
Example: sysSuni4x622Read() is a hardware / RTOS specific
Other Functions
•
•
Other functions are all the remaining functions that are part of the driver and have no special
naming convention. However, they must follow the hungarian notation
Example: utilSuni4x622ValidateChan() is a valid name for such a function
Variables
•
•
Naming of variables must follow the hungarian notation
A pointer to a variable shall use ‘p’ as a prefix followed by the variable name unchanged. If
the variable name already starts with a ‘p’, the first letter of the variable name may be
capitalized, but this is not a requirement. Double pointers might be prefixed with ‘pp’, but
this is not required
•
•
Global variables must be identified with the device’s name in all lowercase as a prefix
Examples: maxDevs is a valid name for a variable, pmaxDevs is a valid name for a pointer to
maxDevs, and suni4x622Mdb is a valid name for a global variable. Note that both
pprevBuf and pPrevBuf are accepted names for a pointer to the prevBuf variable, and that
both pmatrix and ppmatrix are accepted names for a double pointer to the variable
matrix
File Organization
The next table presents a summary of the file naming conventions. All file names must start with
the device abbreviation, followed by an underscore and the actual file name. File names convey
their purpose with a minimum number of characters.
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
123
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Appendix A: Coding Conventions
Table 44: File Naming Conventions
suni4x622_api.c
API (Module and
Device
Management)
Generic driver API block, contains Module &
Device Management API such as installing/de-
installing driver instances, read/writes, and
initialization profiles.
suni4x622_isr.c
API (ISR)
Interrupt processing is handled by this block.
This includes both ISR and DPR management
suni4x622_diag.c
suni4x622_intf.c
API (Diagnostics)
Device diagnostic functions
API (Interface
Configuration)
Interface configuration functions for connecting
the device to external interfaces (i.e., PHY, PL3,
UL2, SBI, Telecombus, clk/data, LVDS, etc.)
suni4x622_stats.c
API (Status and
counts)
Data collection block for all device
results/counts not monitored through interrupt
processing.
suni4x622_aps.c,
suni4x622_loh.c,
suni4x622_poh.c,
suni4x622_pyld.c,
suni4x622_soh.c
API (Device
specific blocks)
Device specific configuration functions defined
in the driver architecture.
suni4x622_hw.c,
suni4x622_hw.h
Hardware
Dependent
Hardware specific functions, constants and
macros
suni4x622_rtos.c,
suni4x622_rtos.h
RTOS Dependent
RTOS specific functions, constants and macros
suni4x622_util.c
suni4x622_api.h
suni4x622_err.h
suni4x622_defs.h
Other
Utility functions
Header file
Header file
Header file
Prototypes for all the API functions of the driver
Return codes
Constants and macros, registers and bitmaps,
enumerated types
suni4x622_typs.h
suni4x622_fns.h
suni4x622_strs.h
Header file
Header file
Header file
Standard types definition (i.e., UINT1, UINT2,
etc.)
Prototypes for all the non-API functions used in
the driver
Structures definitions
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
124
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Appendix B: Error Codes
APPENDIX B: ERROR CODES
The following describes the error codes used in the S/UNI 4x622 device driver
SUNI4x622_SUCCESS
Success
SUNI4x622_FAILURE
Failure
SUNI4x622_ERR_MEM_ALLOC
Memory allocation failure
Invalid argument
SUNI4x622_ERR_INVALID_ARG
SUNI4x622_ERR_INVALID_CHAN
SUNI4x622_ERR_INVALID_MODULE_STATE
SUNI4x622_ERR_INVALID_MIV
SUNI4x622_ERR_PROFILES_FULL
SUNI4x622_ERR_INVALID_PROFILE
SUNI4x622_ERR_INVALID_PROFILE_NUM
SUNI4x622_ERR_INVALID_DEVICE_STATE
SUNI4x622_ERR_DEVS_FULL
Invalid channel number
Invalid module state
Invalid Module Initialization Vector
Maximum number of profiles already added
Invalid profile
Invalid profile number
Invalid device state
Maximum number of devices already added
Device already added
SUNI4x622_ERR_DEV_ALREADY_ADDED
SUNI4x622_ERR_INVALID_DEV
SUNI4x622_ERR_INVALID_DIV
SUNI4x622_ERR_INT_INSTALL
SUNI4x622_ERR_INVALID_MODE
SUNI4x622_ERR_INVALID_REG
SUNI4x622_ERR_POLL_TIMEOUT
Invalid device handle
Invalid Device Initialization Vector
Error while installing interrupts
Invalid ISR/polling mode
Invalid register number
Time-out while polling
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
125
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Appendix C: S/UNI-4x622 Events
APPENDIX C: S/UNI-4X622 EVENTS
Section Overhead Events (SOH)
Error Code
Description
Out Of Frame event
SUNI4x622_EVENT_SOH_OOF
SUNI4x622_EVENT_SOH_LOF
SUNI4x622_EVENT_SOH_LOS
SUNI4x622_EVENT_SOH_SBIPE
SUNI4x622_EVENT_SOH_TIU
SUNI4x622_EVENT_SOH_TIM
Loss Of Frame event
Loss Of Signal event
Section BIP error event
Section Trace Unstable event
Section Trace Mismatch event
Line Overhead Events (LOH)
Error Code
Description
SUNI4x622_EVENT_LOH_LAIS
SUNI4x622_EVENT_LOH_LRDI
SUNI4x622_EVENT_LOH_COAPS
SUNI4x622_EVENT_LOH_COZ1S1
SUNI4x622_EVENT_LOH_LBIPE
SUNI4x622_EVENT_LOH_LREIE
SUNI4x622_EVENT_LOH_PSBF
SUNI4x622_EVENT_LOH_SDBER
SUNI4x622_EVENT_LOH_SFBER
Line Alarm Signal event
Line Remote Defect event
Change of APS bytes event
Change of synchronization status event
Line BIP error
Line REI error
APS Byte Failure
Signal Defect event
Signal Failure event
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
126
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Appendix C: S/UNI-4x622 Events
Path Overhead Events (RPOH)
Error Code
Description
SUNI4x622_EVENT_RPOH_TIU
SUNI4x622_EVENT_RPOH_TIM
SUNI4x622_EVENT_RPOH_PSLMI
SUNI4x622_EVENT_RPOH_PSLUI
SUNI4x622_EVENT_RPOH_PRDI
SUNI4x622_EVENT_RPOH_PERDI
SUNI4x622_EVENT_RPOH_PBIPE
SUNI4x622_EVENT_RPOH_PREI
SUNI4x622_EVENT_RPOH_PAIS
SUNI4x622_EVENT_RPOH_PPSE
SUNI4x622_EVENT_RPOH_PNSE
SUNI4x622_EVENT_RPOH_PLOPTR
SUNI4x622_EVENT_RPOH_ARDI
SUNI4x622_EVENT_RPOH_UNEQ
SUNI4x622_EVENT_RPOH_PSL
SUNI4x622_EVENT_RPOH_AISC
SUNI4x622_EVENT_RPOH_LOPC
SUNI4x622_EVENT_RPOH_NEWPTR
SUNI4x622_EVENT_RPOH_ILLJREQ
SUNI4x622_EVENT_RPOH_DISCOPA
SUNI4x622_EVENT_RPOH_INVNDF
SUNI4x622_EVENT_RPOH_ILLPTR
SUNI4x622_EVENT_RPOH_NDF
Path Trace Unstable event
Path Trace Mismatch event
Path Signal Label Mismatch event
Path Signal Label Unstable event
Path Remote Defect Indication event
Path Enhanced Remote Defect Indication event
Path BIP-8 error event
Path REI error event
Path AIS event
Positive Pointer Justification event
Negative Pointer Justification event
Path Loss Of Pointer event
Aux PRDI state event
Trace Identifier Equipped state event
Path Signal Label changed event
Pointer AIS event
Loss of Pointer Change event
New pointer received event
Illegal Pointer Justification event
Discontinuous pointer change event
Invalid NDF event
Illegal pointer event
NDF event
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
127
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Appendix C: S/UNI-4x622 Events
Payload Events (PYLD)
Error Code
Description
SUNI4x622_EVENT_PYLD_LCD
SUNI4x622_EVENT_PYLD_CHCS
SUNI4x622_EVENT_PYLD_FCS
SUNI4x622_EVENT_PYLD_RXCPXFER
SUNI4x622_EVENT_PYLD_TXCPXFER
SUNI4x622_EVENT_PYLD_ABRT
SUNI4x622_EVENT_PYLD_MAXL
SUNI4x622_EVENT_PYLD_MINL
SUNI4x622_EVENT_FIFO_RXCPFOVR
SUNI4x622_EVENT_FIFO_RXFPFOVR
SUNI4x622_EVENT_FIFO_TXFPFUDR
SUNI4x622_EVENT_PYLD_OOCD
Loss of Cell Delineation event
Corrected/Uncorrected HCS error event
FCS error event
Transfer of Rx CP accumulated counter data event
Transfer of Tx CP accumulated counter event
Aborted packet received event
Maximum packet length violated event
Minimum packet length violated event
Rx Cell FIFO overrun event
Rx Frame FIFO overrun event
Tx Frame FIFO overrun event
Change in Cell Delineation state event
Line Interface Events (INTF_LINE)
Error Code
Description
SUNI4x622_EVENT_INTF_LINE_WANS
WANS phase detector averaging period has
begun event
SUNI4x622_EVENT_INTF_LINE_LOT
SUNI4x622_EVENT_INTF_LINE_ROOL
SUNI4x622_EVENT_INTF_LINE_DOOL
Loss of Transition event
Recovered Reference out of lock event
Recovered data out of lock event
System Interface Events (SYS_INTF)
Error Code
Description
SUNI4x622_EVENT_SYS_INTF_TXOP
event that occurs when TSOP or TSEP is not
asserted with the first or last word of a POS-PHY
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
128
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
Appendix C: S/UNI-4x622 Events
Error Code
Description
packet
SUNI4x622_EVENT_SYS_INTF_UNPROV
event that occurs when a non-existent channel
buffer is detected during in-band addressing
SUNI4x622_EVENT_SYS_INTF_CAM
SUNI4x622_EVENT_SYS_INTF_TPRTY
SUNI4x622_EVENT_SYS_INTF_TSOC
SUNI4x622_EVENT_SYS_INTF_FOVR
SUNI4x622_EVENT_SYS_INTF_FUNR
data field mismatch event
Tx Parity error event
start of cell re-alignment interrupt
FIFO overrun event
FIFO underrun event
Automatic Protection Switching Events (APS)
Error Code
Description
SUNI4x622_EVENT_APS_BIP
SUNI4x622_EVENT_APS_LOS
SUNI4x622_EVENT_APS_LOF
SUNI4x622_EVENT_APS_OOF
SUNI4x622_EVENT_APS_LOT
SUNI4x622_EVENT_APS_DOOL
SUNI4x622_EVENT_APS_ROOL
SUNI4x622_EVENT_APS_ESE
SUNI4x622_EVENT_APS_PJ
BIP-8 error event
Loss of Signal event
Loss of Frame
Out of Frame
Loss of Transition
Recovered Data out of lock
Recovered reference out of lock
Elastic store FIFO error
Pointer Justification
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
129
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
LIST OF TERMS
APPLICATION: Refers to protocol software used in a real system as well as validation software
written to validate the S/UNI-4x622 driver on a validation platform.
API (Application Programming Interface): Describes the connection between this module and the
user’s application code.
ISR (Interrupt-Service Routine): A common function for intercepting and servicing device events.
This function is kept as short as possible because an Interrupt preempts every other function
starting the moment it occurs and gives the service function the highest priority while running.
Data is collected, Interrupt indicators are cleared and the function ended.
DPR (Deferred-Processing Routine): This function is installed as a task, at a user configurable
priority, that serves as the next logical step in Interrupt processing. Data that was collected by the
ISR is analyzed and then calls are made into the application that inform it of the events that
caused the ISR in the first place. Because this function is operating at the task level, the user can
decide on its importance in the system, relative to other functions.
DEVICE: ONE S/UNI-4x622 Integrated Circuit. There can be many devices, all served by this
one driver module.
•
DIV (Device Initialization Vector): Structure passed from the API to the device during
initialization; it contains parameters that identify the specific modes and arrangements of the
physical device being initialized.
•
•
DDB (Device Data Block): Structure that holds the Configuration Data for each device.
DSB (Device Status Block): Structure that holds the Alarms, Status, and Counts for each
device.
MODULE: All of the code that is part of this driver, there is only one instance of this module
connected to one or more S/UNI-4x622 chips.
•
MIV (Module Initialization Vector): Structure passed from the API to the module during
initialization, it contains parameters that identify the specific characteristics of the driver
module being initialized.
•
MDB (Module Data Block): Structure that holds the Configuration Data for this module.
RTOS (Real Time Operating System): The host for this driver.
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
130
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
ACRONYMS
API: Application Programming Interface
APS: Automatic Protection Switch
ATM: Asynchronous Transfer Mode
DDB: Device Data Block
DIV: Device Initialization Vector
DPR: Deferred-Processing Routine
DPV: Deferred-Processing (routine) Vector
DSB: Device Status Block
FIFO: First In, First Out
ISR: Interrupt-Service Routine
ISV: Interrupt-Service (routine) Vector
LOH: Line Overhead
MDB: Module Data Block
MIV: Module Initialization Vector
POH: Path Overhead
PYLD: Payload
RPOH: Receive Path Overhead
RTOS: Real-Time Operating System
SDH: Synchronous Digital Hierarchy
SONET: Synchronous Optical Network
TPOH: Transmit Path Overhead
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
131
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
INDEX
suni4x622GetInitProfile-54
A
suni4x622GetMask-28, 81
suni4x622GetMaskAPS-93
suni4x622GetMaskFIFO-88
suni4x622GetMaskIntf-91
api functions
suni4x622Activate-58
suni4x622Add-34, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
105, 106, 107, 121, 123
suni4x622GetMaskIntfLine-90
suni4x622GetMaskLOH-84
suni4x622GetMaskPYLD-87
suni4x622GetMaskRPOH-85
suni4x622GetMaskSOH-82
suni4x622GetMaskSysIntf-91
suni4x622GetStatusChan-96
suni4x622GetStatusLineIntf-98
suni4x622GetStatusLOH-97
suni4x622GetStatusPYLD-98
suni4x622GetStatusRPOH-97
suni4x622GetStatusSOH-96
suni4x622Init-27, 56, 57, 94, 96, 104, 105, 106, 107
suni4x622IntfSysResetRDLL-77
suni4x622IntfSysResetTDLL-77
suni4x622ISR-17, 23, 24, 25, 94, 95, 110
suni4x622ISRConfig-81, 94
suni4x622LineIntfCfg-76
suni4x622AddInitProfile-54
suni4x622APSCfg-78
suni4x622APSResetRxLink-79
suni4x622APSResetTxLink-80
suni4x622APSXcnntCfg-79
suni4x622ClrMask-28, 82
suni4x622ClrMaskAPS-94
suni4x622ClrMaskFIFO-89
suni4x622ClrMaskIntf-92
suni4x622ClrMaskIntfLine-91
suni4x622ClrMaskLOH-85
suni4x622ClrMaskPYLD-88
suni4x622ClrMaskRPOH-86
suni4x622ClrMaskSOH-83
suni4x622ClrMaskSysIntf-92
suni4x622DeActivate-58
suni4x622LOHForceAIS-67
suni4x622LOHForceB2-67
suni4x622LOHForceRDI-68
suni4x622LOHReadK1K2-66
suni4x622LOHReadS1-67
suni4x622LOHWriteK1K2-65
suni4x622LOHWriteS1-66
suni4x622Mdb-51, 122
suni4x622Delete-24, 52, 53, 56
suni4x622DeleteInitProfile-55
suni4x622DiagDataLoop-102, 103
suni4x622DiagLineLoop-102
suni4x622DiagParaLoop-103
suni4x622DiagPathLoop-102
suni4x622DiagSerialLoop-103
suni4x622DiagTestReg-101
suni4x622DPR-17, 23, 24, 25, 95, 104, 110
suni4x622FIFOCfg-75
suni4x622ModuleClose-52
suni4x622ModuleOpen-26, 52
suni4x622ModuleStart-53
suni4x622FIFOReset-75
suni4x622ModuleStop-53
suni4x622GetCountsChan-99
suni4x622GetCountsLOH-100
suni4x622GetCountsPYLD-101
suni4x622GetCountsRPOH-100
suni4x622GetCountsSOH-99
suni4x622Poll-24, 25, 27, 81, 94
suni4x622PyldCfg-74
suni4x622Read-59
suni4x622ReadBlock-60
suni4x622Reset-57
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
132
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
suni4x622RPCfg-78
cbackSuni4x622PYLD-106
suni4x622RPOHSDCfg-65
suni4x622RPOHSFCfg-64
suni4x622RPOHTraceMsg-69
suni4x622SetInitProfile-27
suni4x622SetMask-28, 81, 82
suni4x622SetMaskAPS-93
suni4x622SetMaskFIFO-89
suni4x622SetMaskIntf-92
suni4x622SetMaskIntfLine-90
suni4x622SetMaskLOH-84
suni4x622SetMaskPYLD-87
suni4x622SetMaskRPOH-86
suni4x622SetMaskSOH-83
suni4x622SetMaskSysIntf-92
suni4x622SOHForceA1-62
suni4x622SOHForceB1-63
suni4x622SOHForceLOS-64
suni4x622SOHForceOOF-63
suni4x622SOHTraceMsg-62
suni4x622SOHWriteJ0-61
suni4x622SysIntfCfg-76
cbackSuni4x622RPOH-105
cbackSuni4x622SOH-104
cbackSuni4x622SysIntf-106
constants
SUNI4x622_ACTIVE-26, 34, 56, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
104, 105, 106, 107
SUNI4x622_DPR_EVENT-51
SUNI4x622_DPR_TASK_PRIORITY-119
SUNI4x622_DPR_TASK_STACK_SZ-120
SUNI4x622_ERR_DEV_ALREADY_ADDED-125
SUNI4x622_ERR_DEVS_FULL-125
SUNI4x622_ERR_INT_INSTALL-125
SUNI4x622_ERR_INVALID_ARG-125
SUNI4x622_ERR_INVALID_CHAN-125
SUNI4x622_ERR_INVALID_DEV-125
SUNI4x622_ERR_INVALID_DEVICE_STATE-125
SUNI4x622_ERR_INVALID_DIV-125
SUNI4x622_ERR_INVALID_MIV-125
SUNI4x622_ERR_INVALID_MODE-125
SUNI4x622_ERR_INVALID_MODULE_STATE-125
SUNI4x622_ERR_INVALID_PROFILE-125
SUNI4x622_ERR_INVALID_PROFILE_NUM-125
SUNI4x622_ERR_INVALID_REG-125
SUNI4x622_ERR_MEM_ALLOC-125
SUNI4x622_ERR_POLL_TIMEOUT-125
SUNI4x622_ERR_PROFILES_FULL-125
SUNI4x622_EVENT_APS_BIP-129
suni4x622THPPForceB3-72
suni4x622TPCfg-79
suni4x622TPOHForceAIS-74
suni4x622TPOHForceARDI-73
suni4x622TPOHForceB3-71
suni4x622TPOHForceERDI-73
suni4x622TPOHForcePJ-72
suni4x622TPOHForceRDI-72
suni4x622TPOHInsertTxPtr-71
suni4x622TPOHWriteC2-70
suni4x622TPOHWriteJ1-69
suni4x622TPOHWriteNDF-70
suni4x622TPOHWriteSS-71
suni4x622Update-57
SUNI4x622_EVENT_APS_DOOL-129
SUNI4x622_EVENT_APS_ESE-129
SUNI4x622_EVENT_APS_LOF-129
SUNI4x622_EVENT_APS_LOS-129
SUNI4x622_EVENT_APS_LOT-129
SUNI4x622_EVENT_APS_OOF-129
SUNI4x622_EVENT_APS_PJ-129
suni4x622Write-59
SUNI4x622_EVENT_INTF_LINE_DOOL-128
SUNI4x622_EVENT_INTF_LINE_LOT-128
SUNI4x622_EVENT_INTF_LINE_ROOL-128
SUNI4x622_EVENT_INTF_LINE_WANSINTEN-128
SUNI4x622_EVENT_INTF_SYS_CAM-129
SUNI4x622_EVENT_INTF_SYS_FOVR-129
suni4x622WriteBlock-60
C
callbacks
cbackSuni4x622FIFO-107
cbackSuni4x622LOH-105
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
133
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
SUNI4x622_EVENT_INTF_SYS_FUNR-129
SUNI4x622_EVENT_INTF_SYS_TPRTY-129
SUNI4x622_EVENT_INTF_SYS_TSOC-129
SUNI4x622_EVENT_INTF_SYS_TXOP-128
SUNI4x622_EVENT_INTF_SYS_UNPROV-129
SUNI4x622_EVENT_LOH_COAPS-126
SUNI4x622_EVENT_LOH_COZ1S1-126
SUNI4x622_EVENT_LOH_LAIS-126
SUNI4x622_EVENT_LOH_LBIPE-126
SUNI4x622_EVENT_LOH_LRDI-126
SUNI4x622_EVENT_LOH_LREIE-126
SUNI4x622_EVENT_LOH_PSBF-126
SUNI4x622_EVENT_LOH_SDBER-126
SUNI4x622_EVENT_POH_AISC-127
SUNI4x622_EVENT_POH_ARDI-127
SUNI4x622_EVENT_POH_DISCOPA-127
SUNI4x622_EVENT_POH_ILLJREQ-127
SUNI4x622_EVENT_POH_ILLPTR-127
SUNI4x622_EVENT_POH_INVNDF-127
SUNI4x622_EVENT_POH_LOPC-127
SUNI4x622_EVENT_POH_NDF-127
SUNI4x622_EVENT_POH_NEWPTR-127
SUNI4x622_EVENT_POH_PAIS-127
SUNI4x622_EVENT_POH_PBIPE-127
SUNI4x622_EVENT_POH_PERDI-127
SUNI4x622_EVENT_POH_PFEBE-127
SUNI4x622_EVENT_POH_PLOPTR-127
SUNI4x622_EVENT_POH_PNSE-127
SUNI4x622_EVENT_POH_PPSE-127
SUNI4x622_EVENT_POH_PRDI-127
SUNI4x622_EVENT_POH_PRPSLMI-127
SUNI4x622_EVENT_POH_PRPSLUI-127
SUNI4x622_EVENT_POH_PSL-127
SUNI4x622_EVENT_POH_TIM-127
SUNI4x622_EVENT_POH_TIU-127
SUNI4x622_EVENT_PYLD_RXCPFOVR-128
SUNI4x622_EVENT_PYLD_RXCPXFER-128
SUNI4x622_EVENT_PYLD_RXFPFOVR-128
SUNI4x622_EVENT_PYLD_TXCPXFER-128
SUNI4x622_EVENT_PYLD_TXFPFUDR-128
SUNI4x622_EVENT_SOH_LOF-126
SUNI4x622_EVENT_SOH_LOS-126
SUNI4x622_EVENT_SOH_OOF-126
SUNI4x622_EVENT_SOH_SBIPE-126
SUNI4x622_EVENT_SOH_TIM-126
SUNI4x622_EVENT_SOH_TIU-126
SUNI4x622_FAILURE-33, 34, 51, 125
SUNI4x622_INACTIVE-26, 34, 56, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 96, 97, 98, 99, 100, 101
SUNI4x622_ISR_MODE-27, 81
SUNI4x622_MAX_DEVS-26, 119
SUNI4x622_MAX_MSGS-120
SUNI4x622_MOD_IDLE-26, 33, 52, 53, 54, 55
SUNI4x622_MOD_READY-26, 33, 53, 54, 55, 56
SUNI4x622_MOD_START-26, 33, 52, 53
SUNI4x622_POLL_DELAY-120
SUNI4x622_POLL_MODE-27, 81
SUNI4x622_PRESENT-26, 34, 56, 57, 58, 59, 60, 61,
101
SUNI4x622_START-26, 34
SUNI4x622_SUCCESS-52, 53, 54, 55, 56, 57, 58, 61, 62,
63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 102, 103, 104,
125
SUNI4x622_TASK_SHUTDOWN_DELAY-120
D
device
stateDevice-26, 34, 35, 51
driver
SUNI4x622_EVENT_POH_UNEQ-127
SUNI4x622_EVENT_PYLD_ABRT-128
SUNI4x622_EVENT_PYLD_CHCS-128
SUNI4x622_EVENT_PYLD_FCS-128
SUNI4x622_EVENT_PYLD_LCD-128
SUNI4x622_EVENT_PYLD_MAXL-128
SUNI4x622_EVENT_PYLD_MINL-128
SUNI4x622_EVENT_PYLD_OOCD-128
inc file
suni4x622_api.h-124
suni4x622_defs.h-124
suni4x622_err.h-124
suni4x622_fns.h-124
suni4x622_hw.h-119, 124
suni4x622_rtos.h-118, 119, 124
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
134
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
suni4x622_strs.h-124
suni4x622_typs.h-124
perrDevice-55
pfifocfg-75, 76
pfirstByte-113
pISV-114
pJ0-62
src file
suni4x622_api.c-124
suni4x622_aps.c-124
suni4x622_diag.c-124
suni4x622_hw.c-118, 124
suni4x622_intf.c-124
suni4x622_isr.c-124
suni4x622_loh.c-124
suni4x622_poh.c-124
suni4x622_pyld.c-124
suni4x622_rtos.c-118, 124
suni4x622_soh.c-124
suni4x622_stats.c-124
suni4x622_util.c-124
pJ1-69
pK1-66
pK2-66
plinecfg-76
pmask-60, 61, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
92, 93, 94
pmem-112
pmiv-52
pProfile-54
pProfileNum-54
ppyldcfg-74
profileNum-35, 54, 55, 56, 57
pS1-67
E
psdcfg-65
enumerated types
psfcfg-64
eSUNI4x622_DEV_STATE-35
eSUNI4x622_ISR_MODE-27, 35, 81
eSUNI4x622_MOD_STATE-34
psrc-112, 113
pstatusChan-96
pstatusLine-98
pstatusLOH-97
pstatusPYLD-98
pstatusRPOH-97
pstatusSOH-96, 97
psyscfg-76
error
errDevice-34, 51, 55
errModule-27, 33, 51
M
module
ptmpisv-95
stateModule-26, 33, 34, 51
S
P
structures
pointers
sSUNI4x622_CBACK-28, 35
pBaseAddr-55
sSUNI4x622_CFG_CHAN-28, 35, 36
sSUNI4x622_CFG_CLK-41, 42
pblock-60, 61
pcountsChan-99
pcountsLOH-100
pcountsPYLD-101
pcountsRPOH-100
pcountsSOH-99
pddb-34, 51
sSUNI4x622_CFG_FIFO-36, 41, 75
sSUNI4x622_CFG_GLOBAL-28, 35, 36
sSUNI4x622_CFG_INTF_LINE_GLOBAL-36, 44, 76
sSUNI4x622_CFG_INTF_SYS_GLOBAL-36, 43, 76
sSUNI4x622_CFG_LINE_INTF-36, 42
sSUNI4x622_CFG_LOH-36, 37
pdiv-56, 57
sSUNI4x622_CFG_PYLD-36, 40, 74
sSUNI4x622_CFG_RALRM-42, 43
pdpv-104, 105, 106, 107, 120
pdst-112, 113
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
135
Download from Www.Somanuals.com. All Manuals Search And Download.
PM5358 S/UNI-4x622 Driver Manual
sSUNI4x622_CFG_RPOH-36, 38
sSUNI4x622_CFG_SD-44, 65
sSUNI4x622_STATUS_LOH-45, 46, 97
sSUNI4x622_STATUS_PYLD-45, 47
sSUNI4x622_STATUS_RPOH-45, 46, 97
sSUNI4x622_STATUS_SOH-45, 96
sSUNI4x622_CFG_SF-44, 64
sSUNI4x622_CFG_SOH-36, 37
sSUNI4x622_CFG_TPOH-36, 38
sSUNI4x622_CNTR_CHAN-48, 99
sSUNI4x622_CNTR_LOH-48, 49, 100
sSUNI4x622_CNTR_PYLD-48, 49, 101
sSUNI4x622_CNTR_RPOH-48, 49, 100
sSUNI4x622_CNTR_SOH-48, 99
sSUNI4x622_DDB-34, 121, 122
sSUNI4x622_USR_CTXT-35, 55, 104, 105, 106, 107,
120
system-specific functions
sysSuni4x622BufferStart-50, 113
sysSuni4x622BufferStop-115
sysSuni4x622DPRTask-23, 24, 95, 110, 119
sysSuni4x622DPVBufferGet-95, 114
sysSuni4x622DPVBufferRtn-104, 115, 120
sysSuni4x622ISRHandler-23, 24, 95, 109, 110, 111, 119
sysSuni4x622ISRHandlerInstall-24, 109
sysSuni4x622ISRHandlerIntInstall-119
sysSuni4x622ISRHandlerRemove-111, 119
sysSuni4x622ISVBufferGet-50, 114
sysSuni4x622ISVBufferRtn-50, 96, 114
sysSuni4x622MemAlloc-112, 113, 118
sysSuni4x622MemCpy-112, 118
sSUNI4x622_DIV-27, 34, 54, 56, 57
sSUNI4x622_DPV-51, 104, 105, 106, 107, 114, 115, 120
sSUNI4x622_HNDL-50, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103
sSUNI4x622_ISV-50, 114
sSUNI4x622_MASK_ISR-28, 29, 31, 32, 35, 50, 81, 82,
83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94
sSUNI4x622_MASK_ISR_APS-28, 32
sSUNI4x622_MASK_ISR_CHAN-28, 29
sSUNI4x622_MASK_ISR_FIFO-29, 31
sSUNI4x622_MASK_ISR_INTF_LINE-29, 32
sSUNI4x622_MASK_ISR_INTF_SYS__GLOBAL-28
sSUNI4x622_MASK_ISR_LOH-29
sysSuni4x622MemFree-113, 118
sysSuni4x622MemSet-112, 113, 118
sysSuni4x622PollBit-109
sysSuni4x622PreemptDis-116
sysSuni4x622PreemptDisable-116
sysSuni4x622PreemptEn-116
sSUNI4x622_MASK_ISR_PYLD-29, 31
sSUNI4x622_MASK_ISR_RPOH-29
sSUNI4x622_MASK_ISR_SOH-29
sysSuni4x622PreemptEnable-116
sysSuni4x622Read-59, 60, 108, 122, 123
sysSuni4x622ReadReg-119
sSUNI4x622_MIV-27, 52
sSUNI4x622_STATUS_CHAN-45, 96
sSUNI4x622_STATUS_CLK-47, 48
sSUNI4x622_STATUS_LINE_INTF-45, 48, 98
sysSuni4x622TimerSleep-115, 118
sysSuni4x622Write-59, 60, 108
sysSuni4x622WriteReg-119
Proprietary and Confidential to PMC-Sierra, Inc.
Document ID: PMC-2010419, Issue 1
136
Download from Www.Somanuals.com. All Manuals Search And Download.
|