Nxp Semiconductors UM10237 User Manual

Page of 792
UM10237_2
© NXP B.V. 2008. All rights reserved.
User manual
Rev. 02 — 19 December 2008 
269 of 792
NXP Semiconductors
UM10237
Chapter 11: LPC24XX Ethernet
An imperfect filter is available, based on a hash mechanism. This filter applies a hash 
function to the destination address and uses the hash to access a table that indicates if 
the frame should be accepted. The advantage of this type of filter is that a small table can 
cover any possible address. The disadvantage is that the filtering is imperfect, i.e. 
sometimes frames are accepted that should have been discarded.
Hash function:
– The standard Ethernet cyclic redundancy check (CRC) function is calculated from 
the 6 byte destination address in the Ethernet frame (this CRC is calculated 
anyway as part of calculating the CRC of the whole frame), then bits [28:23] out of 
the 32 bits CRC result are taken to form the hash. The 6 bit hash is used to access 
the hash table: it is used as an index in the 64 bit HashFilter register that has been 
programmed with accept values. If the selected accept value is 1, the frame is 
accepted.
– The device driver can initialize the hash filter table by writing to the registers 
HashFilterL and HashfilterH. HashFilterL contains bits 0 through 31 of the table 
and HashFilterH contains bit 32 through 63 of the table. So, hash value 0 
corresponds to bit 0 of the HashfilterL register and hash value 63 corresponds to 
bit 31 of the HashFilterH register.
Multicast and unicast
– The imperfect hash filter can be applied to multicast addresses, by setting the 
AcceptMulticastHashEn bit in the RxFilter register to 1.
– The same imperfect hash filter that is available for multicast addresses can also be 
used for unicast addresses. This is useful to be able to respond to a multitude of 
unicast addresses without enabling all unicast addresses. The hash filter can be 
applied to unicast addresses by setting the AcceptUnicastHashEn bit in the 
RxFilter register to 1.
Enabling and disabling filtering
The filters as defined in the sections above can be bypassed by setting the PassRxFilter 
bit in the Command register. When the PassRxFilter bit is set, all receive frames will be 
passed to memory. In this case the device driver software has to implement all filtering 
functionality in software. Setting the PassRxFilter bit does not affect the runt frame filtering 
as defined in the next section.
Runt frames
A frame with less than 64 bytes (or 68 bytes for VLAN frames) is shorter than the 
minimum Ethernet frame size and therefore considered erroneous; they might be collision 
fragments. The receive datapath automatically filters and discards these runt frames 
without writing them to memory and using a receive descriptor.
When a runt frame has a correct CRC there is a possibility that it is intended to be useful. 
The device driver can receive the runt frames with correct CRC by setting the 
PassRuntFrame bit of the Command register to 1.
9.14 Power management
The Ethernet block supports power management by means of clock switching. All clocks 
in the Ethernet core can be switched off. If Wake-up on LAN is needed, the rx_clk should 
not be switched off.