DART-6UL Eth MAC address

From Variscite Wiki
DART-6UL - Ethernet MAC addresses

1 The default MAC addresses

By default, Variscite provides its SOMs with unique MAC addresses (starting with its F8:DC:7A OUI) already written to the SOC's appropriate On-Chip One Time Programmable eFuses (OCOTP).
U-Boot and the kernel automatically reads them from the OCOTP.

2 Using your own MAC addresses

In case you want to ignore the default MAC addresses, and use your own (e.g. 01:23:45:67:89:ab & 01:23:45:67:89:ac), you can do so by setting the following U-Boot environment variables.
To set the MAC address for U-Boot itself, set the ethaddr env. variable to your desired address, 01:23:45:67:89:ac (there is only one active Ethernet port during U-Boot runtime).

To set the MAC addresses for the kernel, add the first MAC to the kernel command line in a form of fec.macaddr=0x01,0x23,0x45,0x67,0x89,0xab (the other Ethernet port will get the consecutive address).

For example, boot from the SOM's internal storage and:
Either set the U-Boot environment variables from the U-Boot command line (boot the board, and hit any key to stop autoboot to get to it):

=> setenv ethaddr 01:23:45:67:89:ac
=> setenv kernelargs fec.macaddr=0x01,0x23,0x45,0x67,0x89,0xab
=> saveenv

Or, you can do it from Linux, with u-boot-fw-utils (the set MAC address will be used starting from the following boot):

# fw_setenv ethaddr 01:23:45:67:89:ac
# fw_setenv kernelargs fec.macaddr=0x01,0x23,0x45,0x67,0x89,0xab


Notes:

  • The 01:23:45:67:89:ab & 01:23:45:67:89:ac MAC addresses are actually illegal addresses, used here just for illustration. You should use a real MAC address of your own.
  • In case you wipe the U-Boot environment, for any reason, make sure to rewrite the MAC address to it.
  • To avoid having to rewrite the MAC address in case of wiping the environment, you can use an EEPROM on your carrier board to keep the MAC address and set the U-Boot environment automatically at U-Boot runtime, by reading the address from it.