![](http://datasheet.mmic.net.cn/330000/PM7366_datasheet_16444405/PM7366_58.png)
RELEASED
DATA SHEET
PM7366 FREEDM-8
ISSUE 4
PMC-1970930
FRAME ENGINE AND DATA LINK MANAGER
PROPRIETARY AND CONFIDENTIAL TO PMC-SIERRA,INC., AND FOR ITS CUSTOMERS’ INTERNAL USE
45
Note that the maximum value to which an end pointer may be set is FFFF hex, resulting in a
maximum offset from the queue base address of (4*(FFFF-1)) = 3FFF8 hex. An end pointer must
not be set to 0 hex in an attempt to include offset 3FFFC hex in a queue.
As shown in Figure 6, the ready queue elements have a status field as well as an RPDR field.
The RMAC fills in the status field to mark whether a packet was successfully received or not. The
host reads the status field. The ready queue element is shown in Table 9 below along with the
definition of the status bits.
If the RMAC requires a buffer of a particular size (i.e. small or large) and no RPDR is available in
the corresponding free queue, a RPDR from the other free queue is substituted. The host may,
therefore, force the RMAC to store received data in buffers of only one size by setting one of the
free queues to zero length, i.e. by setting the start and end index registers of one of the queues to
equal values. If the RMAC requires a buffer and neither free queue contains RPDRs, an
RPQ_ERRI interrupt is generated.
Table 9 – RPDRR Queue Element
Bit 15
Bit 0
STATUS[1:0]
RPDR[13:0]
Field
Description
STATUS[1:0]
The encoding for the status field is as follows:
00 - Successful reception of packet.
01 - Unsuccessful reception of packet.
10 - Unprovisioned partial packet.
11 - Reserved.
RPDR[13:0]
The RPDR[13:0] field defines the offset of the first RPD in a
linked chain of RPDs, each pointing to a buffer containing the
received data.
As described previously, the RMAC links a large buffer RPD to a small buffer RPD if more than
one buffer is needed for a packet. The RMAC links additional large buffer RPDs to the end of the
chain as required until the entire packet is copied to host memory (provided that the host has not
disabled use of both free queues by setting one of them to length zero). After storing the packet
data, the RMAC places the STATUS+RPDR for the first RPD onto the ready queue. Only the
RPDR associated with the first RPD is placed onto the ready queue. All other required RPDs are
linked to the first RPD as shown in Figure 7.
Although a STATUS+RPDR only totals to 16 bits, each queue entry is a dword, i.e. 32 bits. When
the RMAC block writes a STATUS+RPDR to the ready queue, it sets the third byte to 0 and the
fourth (most significant) byte is unmodified.