BCM1250/BCM1125/BCM1125H
User Manual
10/21/02
B r o a d c o m C o r p o r a t i o n
Page
278
Section 9: Ethernet MACs
Document
1250_1125-UM100CB-R
There are five components to the filter.
1
Broadcast packet detection. Broadcast packets are either all accepted or all rejected.
2
Exact match. The incoming packet address is compared to eight addresses (which may be unicast or multicast
addresses), if it matches any of them then the packet is accepted, otherwise it is rejected. In parts with system
revision PERIPH_REV3 or greater two of the addresses have masks associated with them, if a bit is clear in
the mask it is excluded from the comparison. The sense of this section of the filter can be reversed, so that
packets will only be accepted if it does not match any of the addresses. All exact match addresses are always
enabled, if less than 8 entries are needed the extra ones can be written with copies of one of the accepted
addresses, or with 00-00-00-00-00-00 which is not a valid address.
3
Hash match. Nine bits are extracted from the partial CRC of the packet for the six destination address bytes,
this provides a hash value. This value is extract ed from the standar d CRC-32 descr ibed in
. There are eight 64-bit hash table registers, these are concatenated to form a 512 bit
bitmap (map bit 511 is hash_table7 bit 63... map bit 0 is hash_table0 bit 0). The hash value is used as an index
into this bitmap, the packet is accepted if the bit is set and rejected if the bit is clear. The sense of the match
can be inverted so the packet will only be accepted if the bit is clear.
4
Multicast Match. The filter can be configured to accept all multicast packets. If this is enabled then the only
reason to put multicast addresses in the Exact Match filter or enable multicast hash matches is to make use
of the match_exact and match_hash flags in the DMA status information.
5
Pause Frame. If the header of the frame indicates that it is a Pause Frame (flow control frame) then it will
normally be consumed by the interface and the transmitter flow controlled as requested. In parts where the
system revision indicates PERIPH_REV3 or greater if the fwdpause_en control is enabled then the hardware
will not act on Pause Frames and the address filter will accept them for reception.
If the destination address of the packet is accepted by any of the three filters or the promiscuous mode bit is
set then the packet will be received. If there is no match then the packet is dropped. (Note that the filter will not
operate properly if the fifo release threshold rx_rl_thrsh is set smaller than the position required for the packet
header, since the threshold has a minimum of two this is only a concern when there is a prepended header.)
The receive address filter is controlled by the
mac_adfilter_cfg
register. There are a set of enable bits and
invert bits to control the filter, as shown in
. The address registers and hash map must
also be written.
A packet will be accepted if any of the filters indicate it should be accepted. If the broadcast address FF-FF-
FF-FF-FF-FF is put in an exact match address register then broadcast packets will be accepted regardless of
the state of the broadcast enable bit. However, setting the hash entry corresponding to the broadcast address
will not cause acceptance because a hash match is qualified by the packet being unicast or multicast.
The receive address filter is still applied in Packet FIFO mode. Since the data is not expected to be formatted
as an Ethernet frame most applications will need to set the allpkt_en bit to accept all packets.