MAC Address Generation in Console Mode

Q

Which MAC address is used in Ethernet Console Mode ?

A

The MAC address is generated by the ROMloader. It is not taken from a FDL - Flash Device Label - stored in the Flash Memory.

I.e. no matter if console mode is entered on a blank chip with erased flash memory or a properly setup chip with HW-config, FDL and Firmware in Flash, the MAC address will be the same.

The ROMloader generates the MAC address from a unique chip ID. This unique chip ID is stored in the Flash info page, programmed in the factory and not eraseable/programmable by the user.

All netX 90 Rev. 0 chips feature the same unique chip ID, i.e. always use the same MAC address 00:02:a2:47:4e:2a

The mac address pool used inside the ROM code has a size of 256 addresses.

Algorithm for MAC address calculation


 1) The unique ID is inflated to a size of 12 Bytes, filled with 0x00s

e.g.  64 00 00 00 00 00 00 00 00 00 00 00


 2) A SHA384 checksum is calcualed over these 12 Bytes:

e.g. c6ee3e7c7dde846b241ec5a37509dfe50da27a9ec9699f5e956b3a789202ec4201f904e6c501fc96cf0fadde6655657c


 3) The first byte of this hash (0xc6 in the example) is the offset, which is added to the base MAC address "00:02:a2:47:4d:64"

Port 0 uses this MAC address

Port 1 uses an offset (Hash[0]+1)&0xff (0xc7 in the example).


Hash[0] = 0xc6

Basis MAC = 00:02:a2:47:4d:64


Port 0:

  Offset = Hash[0] = 0xc6

  MAC = 00:02:a2:47:4e:2a


Port 1:

  Offset = (Hash[0] + 1) & 0xff = 0xc7

  MAC = 00:02:a2:47:4e:2b