5 receive buffer queue pointer register – Rainbow Electronics AT91CAP9S250A User Manual
Page 814

814
6264A–CAP–21-May-07
AT91CAP9S500A/AT91CAP9S250A
42.5.5
Receive Buffer Queue Pointer Register
Register Name:
EMAC_RBQP
Access Type:
Read/Write
This register points to the entry in the receive buffer queue (descriptor list) currently being used. It is written with the start
location of the receive buffer descriptor list. The lower order bits increment as buffers are used up and wrap to their original
values after either 1024 buffers or when the wrap bit of the entry is set.
Reading this register returns the location of the descriptor currently being accessed. This value increments as buffers are
used. Software should not use this register for determining where to remove received frames from the queue as it con-
stantly changes as new frames are received. Software should instead work its way through the buffer descriptor queue
checking the used bits.
Receive buffer writes also comprise bursts of two words and, as with transmit buffer reads, it is recommended that bit 2 is
always written with zero to prevent a burst crossing a 1K boundary, in violation of section 3.6 of the AMBA specification.
• ADDR: Receive buffer queue pointer address
Written with the address of the start of the receive queue, reads as a pointer to the current buffer being used.
31
30
29
28
27
26
25
24
ADDR
23
22
21
20
19
18
17
16
ADDR
15
14
13
12
11
10
9
8
ADDR
7
6
5
4
3
2
1
0
ADDR
–
–