Intel® IXP400 Software

Access-Layer Components: DMA Access Driver (IxDmaAcc) API

Figure 46. IxDMAcc Initialization

Client

IxDmaAcc

IxQMg

ixOsal

IxDmaAccDescriptorManager

 

1. ixDmaAccInit

 

 

 

 

 

2. Init Config

 

 

 

 

3. ixDmaAccDescriptorPoolInit

 

 

 

 

IX_SUCCESS

 

 

 

 

4. ixQMgrConfig

 

 

 

5. IxQMgrNotificationCallbackSet

 

 

 

 

6. ixOsalMutexInit

 

 

 

IX_DMA_SUCCESS

 

 

 

 

 

 

 

B2360-02

1.Client calls ixDmaAccInit to initialize the IxDmaAcc component with an NPE ID as a parameter. The NPE ID indicates which NPE is been used to provide the DMA functionality.

2.ixDmaAccInit checks if ixQmgr and the OSAL components have been initialized.

3.ixDmaAccInit calls ixDmaAccDescriptorPoolInit to allocate and initialize an array of descriptor data structures to store the DMA request and client’s callback function. (See the ixDmaAccDescriptorManager description.)

4.ixDmaAccInit calls ixQmgrConfig to configure the DMA request queue and the DMA done queue.

The queue ID depends on which NPE the DMA component will be loaded. The selection of which NPE to run is made during run time by the client code.

The client also need to initialize AQM (the Queue Manager).

5.ixDmaAccInit calls ixQMgrNotificationCallbackSet to register the callback function for the DMA-done queue.

6.ixDmaAccInit calls ixOsal to initialize mutex.

The mutex ID will be used to access queue descriptor entry pool.

ixDmaAccInit returns IX_DMA_SUCCESS upon completion of the DMA initialization.

8.9.2DMA Configuration and Data Transfer

Figure 47 describes the configuration and DMA data transfer between a client and an NPE.

Programmer’s Guide

IXP400 Software Version 2.0

April 2005

 

Document Number: 252539, Revision: 007

125

Page 125
Image 125
Intel IXP400 manual DMA Configuration and Data Transfer, IxDMAcc Initialization