Intel IXP400 Frozen Dessert Maker User Manual


 
Intel
®
IXP400 Software
Access-Layer Components: DMA Access Driver (IxDmaAcc) API
April 2005 IXP400 Software Version 2.0 Programmer’s Guide
118 Document Number: 252539, Revision: 007
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.1 IxDmaAccDescriptorManager
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.7 Parameters 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.