29.01.2015 Views

STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and ...

STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and ...

STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Ethernet (ETH): media access control (MAC) with DMA controller<br />

RM0008<br />

Bit 3 DAIF: Destination address inverse filtering<br />

When this bit is set, the address check block operates in inverse filtering mode for the DA<br />

address comparison for both unicast <strong>and</strong> multicast frames.<br />

When reset, normal filtering of frames is performed.<br />

Bit 2 HM: Hash multicast<br />

When set, MAC performs destination address filtering of received multicast frames according<br />

to the hash table.<br />

When reset, the MAC performs a perfect destination address filtering for multicast frames, that<br />

is, it compares the DA field with the values programmed in DA registers.<br />

Bit 1 HU: Hash unicast<br />

When set, MAC performs destination address filtering of unicast frames according to the hash<br />

table.<br />

When reset, the MAC performs a perfect destination address filtering for unicast frames, that<br />

is, it compares the DA field with the values programmed in DA registers.<br />

Bit 0 PM: Promiscuous mode<br />

When this bit is set, the address filters pass all incoming frames regardless of their destination<br />

or source address. The SA/DA filter fails status bits in the receive status word are always<br />

cleared when PM is set.<br />

Ethernet MAC hash table high register (ETH_MACHTHR)<br />

Address offset: 0x0008<br />

Reset value: 0x0000 0000<br />

The 64-bit Hash table is used for group address filtering. For hash filtering, the contents of<br />

the destination address in the incoming frame are passed through the CRC logic, <strong>and</strong> the<br />

upper 6 bits in the CRC register are used to index the contents of the Hash table. The most<br />

significant bit determines the register to be used (hash table high/hash table low), <strong>and</strong> the<br />

other 5 bits determine which bit within the register. A hash value of 0b0 0000 selects bit 0 in<br />

the selected register, <strong>and</strong> a value of 0b1 1111 selects bit 31 in the selected register.<br />

For example, if the DA of the incoming frame is received as 0x1F52 419C B6AF (0x1F is the<br />

first byte received on the MII interface), then the internally calculated 6-bit Hash value is<br />

0x2C <strong>and</strong> the HTH register bit[12] is checked for filtering. If the DA of the incoming frame is<br />

received as 0xA00A 9800 0045, then the calculated 6-bit Hash value is 0x07 <strong>and</strong> the HTL<br />

register bit[7] is checked for filtering.<br />

If the corresponding bit value in the register is 1, the frame is accepted. Otherwise, it is<br />

rejected. If the PAM (pass all multicast) bit is set in the ETH_MACFFR register, then all<br />

multicast frames are accepted regardless of the multicast hash values.<br />

The Hash table high register contains the higher 32 bits of the multicast Hash table.<br />

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />

HTH<br />

rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw<br />

Bits 31:0 HTH: Hash table high<br />

This field contains the upper 32 bits of Hash table.<br />

910/995 Doc ID 13902 Rev 9

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!