Intel® IXP400 Software

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

The ixDmaAcc component consists of three APIs:

PUBLIC IX_STATUS ixDmaAccInit (IxNpeDlNpeId npeId) This function initializes the DMA Access component internals.

PUBLIC IxDmaReturnStatus ixDmaAccDmaTransfer (IxDmaAccDmaCompleteCallback callback, UINT32 SourceAddr, UINT32 DestinationAddr, UINT16 TransferLength, IxDmaTransferMode TransferMode, IxDmaAddressingMode AddressingMode, IxDmaTransferWidth TransferWidth) This function performs DMA transfer between devices within the IXP4XX memory map.

PUBLIC IX_STATUS ixDmaAccShow (void)

This function displays internal component information relating to the DMA service (for example, the number of the DMA requests currently pending in the queue).

8.6.1IxDmaAccDescriptorManager

This component provides a private API that is used internally by the ixDmaAcc component. It provides a wrapper around the descriptor-pool-access to simplify management of the pool. This API allocates, initializes, gets, and frees the descriptor entry pool.

The descriptor memory pool is implemented using a circular buffer of descriptor data structures. These data structures hold references to the descriptor memory. The buffer is allocated during initialization. The buffer holds the maximum number of active DMA request the IxDmaAcc supports (16).

This data structure can be accessed by ixDmaAccDescriptorGet function to get an entry from the pool and ixDmaAccDescriptorFree to return the entry back to the pool.

These internal functions include:

ixDmaAccDescriptorPoolInit(void) — Allocates and initializes the descriptor pool.

ixDmaAccDescriptorPoolFree(void) — Frees the allocated the descriptor entry pool.

ixDmaAccDescriptorGet(IxDmaDescriptorPoolEntry *pDescriptor) — Returns pointer to descriptor entry.

ixDmaAccDescriptorFree(void) — Frees the descriptor entry.

Note: The IxDmaAcc component addressing space for physical memory is limited to 28 bits. Therefore mBuf headers should be located in the first 256 Mbytes of physical memory.

8.7Parameters Description

The client needs to specify the source address, destination address, transfer mode, transfer width, addressing mode, and transfer length for each DMA transfers request. The following subsections describe the parameter details.

April 2005

IXP400 Software Version 2.0

Programmer’s Guide

118

Document Number: 252539, Revision: 007

 

Page 118
Image 118
Intel IXP400 manual Parameters Description, IxDmaAccDescriptorManager