AAL2 Implementation
MPC885 PowerQUICC Family Reference Manual, Rev. 2
44-12
Freescale Semiconductor
44.4.5.1.1
Starting the Timer for a Partially-Filled Active Buffer
When the AAL2 is unable to fill a channel’s active buffer, it does the following:
•
Starts the count down for the channel’s partially filled active buffer by setting the
AAL2_TxWait_table[X,Y] bit, where:
X = (TCU + AAL2_TxWait_PTR) modulo (the number of rows in the wait table)
Y = channel number.
•
Stores X in the channel’s AAL2_TCT (so that it can later clear the bit once the active buffer is sent,
either full or partially filled).
The TCU field is defined in AAL2_TCT of each channel. The wait pointer (AAL2_TxWait_PTR) is
defined in the AAL2 parameter RAM area; see
Section 44.7.1, “AAL2 Parameter RAM.”
44.4.5.1.2
Countdown Mechanism and Detection of Expired Buffers
Each advance of the wait pointer through the rows of the wait table corresponds to one RISC timer tick.
The wait pointer marks the current row in the wait table. All bits that are set in the current row represent
expired channels. Each time the RISC timer expires, it asserts a request to the CPM. This request in turn
activates AAL2 to do the following:
•
For each bit set in the current row, the AAL2 will:
— Pad the partially filled active buffer with zeros.
— Close its BD (R=1). (The cell is sent the next time the channel is scheduled by the APC or the
host issues an
APC
BYPASS
command for the channel.)
— Clear the channel’s bit in the wait table.
•
The wait pointer advances to the next row of the wait table, thereby decreasing the wait time of all
remaining partially filled active buffers by one RISC timer tick.
When the wait pointer reaches the end of the table, it advances back to the beginning. The size of the wait
table is limited to 256 rows, which means that the maximum delay of an active buffer is (255 * RISC timer
period).
Note that if all the bits in the current row are 0 (which may happen in most cases), AAL2 simply advances
the wait pointer. All channels in the wait table then become one row closer to the wait pointer, which means
that one RISC timer period is subtracted from the wait time of all the partially filled active buffers.
The host controls the count down mechanism in each channel’s AAL2_TCT:
•
AAL2_TCT[ET] defines whether the Timer CU mechanism for this channel is enabled.
•
AAL2_TCT[TCU] determines the maximum delay for the channel’s partially filled active buffer
(TCU * RISC timer period).
For example, assuming the following:
•
RISC timer expires every 0.5 ms,
•
TCU = 6 (for channel n), and
•
AAL2_TxWait_PTR points to row 3,
Summary of Contents for PowerQUICC MPC870
Page 98: ...MPC885 PowerQUICC Family Reference Manual Rev 2 I 4 Freescale Semiconductor ...
Page 118: ...MPC885 Overview MPC885 PowerQUICC Family Reference Manual Rev 2 1 20 Freescale Semiconductor ...
Page 158: ...The MPC8xx Core MPC885 PowerQUICC Family Reference Manual Rev 2 3 18 Freescale Semiconductor ...
Page 288: ...MPC885 PowerQUICC Family Reference Manual Rev 2 III 4 Freescale Semiconductor ...
Page 554: ...MPC885 PowerQUICC Family Reference Manual Rev 2 V 6 Freescale Semiconductor ...
Page 1090: ...UTOPIA Interface MPC885 PowerQUICC Family Reference Manual Rev 2 43 8 Freescale Semiconductor ...
Page 1312: ...Byte Ordering MPC885 PowerQUICC Family Reference Manual Rev 2 A 8 Freescale Semiconductor ...
Page 1336: ...MPC885 PowerQUICC Family Reference Manual Rev 2 D 16 Freescale Semiconductor ...
Page 1358: ...MPC885 PowerQUICC Family Reference Manual Rev 2 D 38 Freescale Semiconductor ...
Page 1370: ...MPC880 MPC885 PowerQUICC Family Reference Manual Rev 2 E 4 Freescale Semiconductor ...
Page 1386: ...Revision History MPC885 PowerQUICC Family Reference Manual Rev 2 I 2 Freescale Semiconductor ...