
Chapter 3 - MACSI Host Interface
Receive
The host provides the controller with Receive commands, which specify the host resources to be used for incoming frames. As frames come in, the controller transfers them to the specified host memory locations, updates the provided Receive commands, and posts them back to the host.
Receive commands may be allocated to particular ports, or they may be placed in a "free pool", and the controller will use them as needed. This is done with the ANY bit in the Command Options field. A suggested practice would be to post a minimum number of Receive commands for each port, to prevent any port from getting starved out by activity on other ports, and then post a pool of receives to be used by all ports.
The controller will use available internal resources to buffer incoming frames, so that the host does not have to meet tight timing windows in order to prevent dropped packets. However, receive performance will largely be a function of how many commands may be aggregated into a single multiple completion return, which will increase as the available number of
Finally, receives posted back using the multiple completion mechanism will not be separated by port number. The host will need to scan the list of returned frames to separate out by ports, if necessary.
Table
Receive
Offst | 15 | 14 |
| 13 | 12 | 11 | 10 |
| 9 |
| 8 |
| 7 | 6 |
| 5 | 4 | 3 | 2 | 1 | 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||||
0x00 |
|
|
|
|
|
|
|
| Command Code |
|
|
|
|
|
|
|
| ||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |||||
0x01 |
|
|
|
|
|
|
| Command Options |
|
|
|
|
|
|
|
| |||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||||
0x02 |
|
|
|
|
|
|
|
| Return Status |
|
|
|
|
|
|
|
| ||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||||||
0x03 |
| Normal Completion Level |
|
|
|
|
|
| Normal Completion Vector |
|
| ||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||||||||
0x04 |
|
| Error Completion Level |
|
|
|
|
|
|
| Error Completion Vector |
|
| ||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||||||
0x05 |
|
|
|
|
|
| DMA Transfer Control Word |
|
|
|
|
| |||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||||||
0x06 |
|
|
|
|
|
|
| Buffer Address (MSW) |
|
|
|
|
|
|
| ||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||||||
0x07 |
|
|
|
|
|
|
| Buffer Address (LSW) |
|
|
|
|
|
|
| ||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||
0x08 |
|
|
|
|
|
|
|
|
| Reserved |
|
|
|
|
|
|
|
|
| ||
|
|
|
|
|
|
|
|
|
|
|
| ||||||||||
0x09 |
|
|
|
|
| Max Transfer Size / Actual Transfer Size |
|
|
|
|
| ||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||
0x0A |
|
|
|
|
|
|
|
|
| Reserved |
|
|
|
|
|
|
|
|
| ||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |||||||
0x0B |
|
|
|
|
|
| Packet Type / Length Field |
|
|
|
|
|
|
| |||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||||
0x0C |
|
|
|
|
|
|
|
| Source Address |
|
|
|
|
|
|
|
| ||||
to |
|
|
|
|
|
|
|
|
| (6 Bytes) |
|
|
|
|
|
|
|
|
| ||
0x0E |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||
0x0F |
|
|
|
|
|
|
|
|
| Reserved |
|
|
|
|
|
|
|
|
| ||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||
0x10 |
|
|
|
|
|
|
|
|
| Reserved |
|
|
|
|
|
|
|
|
| ||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||
0x11 |
|
|
|
|
|
|
|
|
| Reserved |
|
|
|
|
|
|
|
|
| ||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
90