Intel IXP400 Frozen Dessert Maker User Manual


 
Intel
®
IXP400 Software
Access-Layer Components: HSS-Access (IxHssAcc) API
April 2005 IXP400 Software Version 2.0 Programmer’s Guide
216 Document Number: 252539, Revision: 007
For transmission, ixOsServCacheDmaMalloc() is used to allocated two pools: a data buffer pool
and a pointer list pool. The data buffer pool has N buffers — one for each channel. Each buffer is
divided into K sections and each section has L bytes. The pointer list pool has K pointer lists. Each
list has N pointers, each pointing to a section in a data buffer.
Before channelized service is enabled, the pointers have to be initialized to point to the first section
of each data buffer in the data buffer pool, and data for transmission is prepared and moved to the
data buffer. The pointers to the data buffer pool and pointer list pool are passed to IxHssAcc when
ixHssAccChanConnect() is called.
The client can check the current location of data being transmitted by using the registered
ixHssAccChanRxCallback() function. When the Rx callback function is called, an offset value
txOffset is returned.
txOffset indicates which pointer list in the pointer list pool is pointing to the sections of the data
buffers currently being transmitted. Thus the client can use txOffset to determine where new data
needs to be put into the data buffer pool for transmission. For example, data can be prepared and
moved into sections pointed by the (txOffset-2)th pointer list. The length of the buffer, K*L, needs
to be large enough so that the client has enough time to prepare data for transmission.
Figure 69. HSS Channelized Receive Operation
NPE-A
Hss Channelized Rx
Operation
2. Rx data moved
to circular buffers,
one for each
channel
1. Rx data received
from HSS port
HssChannelizedRxTrigger
queue
3. Trigger event
sent to queue at
specified
frequency
Client Rx Buffer in SDRAM
Total Size =
(N+1)*CircBufSizeB
Circular
buffer for
channel 0
RxCircBufSizeB
F0-TSa
F1-TSa
F2-TSa
F0-TSb
F1-TSb
F2-TSb
..
.
..
.
F0-TSz
F1-TSz
F2-TSz
..
.
...
Circular
buffer for
channel 1
Circular
buffer for
channel N
RxCircBufSizeB
RxCircBufSizeB
Channel:
F0-
TSa
F0-
TSb
F0-
TSc
...
F0-
TSz
Frame 0
01 2 N
F1-
TSa
F1-
TSb
F1-
TSc
...
F1-
TSz
Frame 1
01 2 N
...
HSS Port Serial Data Stream
(TSa, TSb, ... = timeslots configured as "voice")
B2384-02