Intel 82558 Switch User Manual


 
Intel 8255x 10/100 Mbps Ethernet Controller Family Open Source Software Developer Manual 83
Host Software Interface
The transmit DMA transfers the list of multicast addresses from memory to the execution machine
through the transmit FIFO. The CU performs the following sequence:
1. Begins execution of the multicast setup action command.
2. Reads the multicast count field and saves it internally.
3. Initiates the transmit DMA with the multicast list address and byte count according to the
multicast count field.
4. Waits for the transmit byte machine to complete the internal hash table update.
5. Completes the multicast setup action command.
The receive byte machine maintains a 64-bit hash table used for checking multicast addresses
during reception. After the execution machine reads a multicast setup command, it clears the hash
table and reads the bytes in groups of 6. Each group is hashed using CRC logic, and the bit in the
hash table that bits 2 through 7 of the CRC register point to is set to one. A group that is not
complete has no effect on the hash table. The execution machine notifies the CU after completion.
An incoming frame is accepted if it has a destination address with the significant bit in the most
significant byte equal to 1 and after hashing points to a bit in the hash table whose value is one. The
hash function is selecting bits 2 through 7 of the transmit CRC register. A software reset causes the
hash table to become all zeros.
6.4.2.5 Transmit (100b)
Transmit commands can use either the simplified or flexible memory structure. The simplified
structure expects the transmit data to reside entirely in the memory space immediately after the
transmit command block (TCB). The flexible transmit structure allows multiple data buffers to be
accessed through a transmit buffer descriptor (TBD) array. Both models require the use of one
transmit command block per frame transmitted.
The 82558 introduced several new enhancements to the design of the software and hardware
interface for transmits. Both the 82558 and the 82559 allow software to use either the original
82557 compatible TCB format or the new extended TCB format. For the 82558 and 82559 devices,
the TCB type used is determined by a configuration bit (Section 6.4.2.3, “Configure (010b)”).
The format of the 82557 TCB (original TCB format) is illustrated in the figure below. There were a
few additional capabilities added in the 82558 and 82559 that can be utilized through this
command block interface. These new capabilities are highlighted.
Figure 19. Transmit Command Format
Offset Command Word Bits 31:16 Status Word Bits 15:0
00h EL S I CID 000 NC SF 100 C X OK U XXXXXXXXXXXX
04h Link Address (A31:A0)
08h Transmit Buffer Descriptor Array Address
TBD Number Transmit Threshold EOF 0 Transmit Command Block Byte Count