MAC Address Setup/Configuration
BCM5718 Programmer’s Guide
Broadcom
®
January 29, 2016 • 5718-PG108-R
Page 135
MAC Address Setup/Configuration
The MAC address registers, starting at offset 0x0410, contain the MAC addresses of the NIC. These registers
are usually initialized with a default MAC address extracted from the NIC NVRAM when it is first powered up.
The host software may overwrite the default MAC address by writing to the MAC registers with a new MAC
address.
illustrates the MAC register format.
The BCM5718 family Ethernet controller allows a NIC to have up to four MAC addresses (offset 0x410–0x42F)
that are used for hardware packet reception filtering. However, most host software will initialize the registers of
the four MAC addresses to the same MAC address since a NIC usually has only one MAC address.
When flow control is enabled on the Ethernet controller, the MAC Address 0 is used as the source address for
sending PAUSE frames (see
“Pause Control Frame” on page 578
).
Packet Filtering
Multicast Hash Table Setup/Configuration
The MAC hash registers are used to help discard unwanted multicast packets as they are received from the
external media. The destination address is fed into the normal CRC algorithm in order to generate a hash
function. The most significant bits of the CRC are then used without any inversion in reverse order to index into
a hash table, which is comprised of these MAC hash registers. If the CRC is calculated by shifting right, then
the right-most bits of the CRC can be directly used with no additional inversion or bit swapping required. See
“Ethernet CRC Calculation” on page 136
for more details on the CRC algorithm.
All four MAC hash registers are used so that register 1 bit-32 is the most significant hash table entry and register
4 bit-0 is the least significant hash table entry. This follows the normal big-endian ordering used throughout the
Ethernet controller. Since there are 128 hash table entries, 7 bits are used from the CRC. When hash table is
extended to 256 entries, 8 bits from the CRC will be used as hash index.
The MAC hash registers are ignored if the receive MAC is in promiscuous mode.
Table 36: Mac Address Registers
Register Name
Offset
31
24
23
16
15
8
7
0
Mac_Address_0
0x0410
Unused
Octet 0
Octet 1
0x0414
Octet 2
Octet 3
Octet 4
Octet 5
Mac_Address_1
0x0418
Unused
Octet 0
Octet 1
0x041c
Octet 2
Octet 3
Octet 4
Octet 5
Mac_Address_2
0x0420
Unused
Octet 0
Octet 1
0x0424
Octet 2
Octet 3
Octet 4
Octet 5
Mac_Address_3
0x0428
Unused
Octet 0
Octet 1
0x042c
Octet 2
Octet 3
Octet 4
Octet 5