![](http://datasheet.mmic.net.cn/110000/GT-96100A_datasheet_3491740/GT-96100A_269.png)
GT-96100A Advanced Communication Controller
Revision 1.0
269
12.3.3.4 RX DMA notes
The Receive DMA process is packet oriented. The DMA does not close the first descriptor of a packet, until the
last descriptor of the packet is closed. When closing the first descriptor, the DMA writes status to the Command/
Status word and resets the ownership bit. A RxBuffer maskable interrupt is generated if the EI bit in the first
descriptor is set.
The receive DMA never expects a NULL next descriptor pointer or a CPU owned descriptor during normal oper-
ation. It is assumed that whenever the receive DMA needs a buffer, a buffer is ready for it. If this is not the case,
the RxDMA engine stops serving the current priority queue and a Rx_resource_error maskable interrupt is gen-
erated. To resume operation of the stopped queue, the following must be performed:
1. Read the RxCDP associated with the stopped queue.
2. If RxCDP is not NULL, it means that the error is due to a CPU owned descriptor. In this case, flip the
ownership bit of the descriptor pointed by RxCDP.
3. If RxCDP is NULL, it means that the error is due to a NULL descriptor pointer. In this case, re-initialize
the queue by writing a valid pointer to both RxCDP and RxFDP.
Stopping RX DMA operation is possible using the RX_ABORT command (see
Table 297).12.3.4 Ethernet Address Recognition
The following chapter describes the Hash algorithm and Hash table data structure. The CPU must build this table
for the GT-96100A before enabling the Ethernet port.
12.3.4.1 Hash Table Structure
The GT-96100A Hash table is a data structure prepared by the CPU and resides in the system DRAM. Its location
is identified by a 32 bit pointer stored in the GT-96100A EHTP internal register (addresses 0x84828 and
0x88828). The Hash table must be octet-byte aligned. The lowest three bits of the EHTP register are hard wired
to ‘0’.
There are two possible sizes for the Hash table. Table size is selected by the HS bit in the Ethernet Configuration
Register (PCR, address 0x84800 and 0x88800).
8K address table. 256KByte of DRAM required (4 x 64KByte banks)
1/2K address table. 16KByte of DRAM required (4 x 4KByte banks)
A multiple of 4 banks are used in order to reduce the number of addresses that are mapped to the same table
entry.
NOTE: The user must initialize the Hash table before enabling the Ethernet Controller.
Each Address entry is a two word data field (64 bits) as shown below: