wiki:ethernet

Version 2 (modified by Ryan Erbstoesser, 26 hours ago) ( diff )

update format

Ethernet

This is a generic Ethernet page for all Gateworks SBCs.

Also see the Venice Ethernet page: venice/ethernet

MAC Address Information and Programming

Gateworks can program custom MAC addresses to ethernet on orders of 100 pieces or more (considered a Gateworks special)

The ethernet MAC address for onboard ethernet devices come from our Gateworks board-info EEPROM.

To see the MAC address, see below examples:

U-Boot:

u-boot=> print ethaddr # eth0's address
ethaddr=00:d0:12:8a:f8:24
^^^ U-Boot won't allow you to change this unless you rebuild with
CONFIG_OVERWRITE_ETHADDR_ONCE=y

u-boot=> net list
eth0 : ethernet@30be0000 00:d0:12:8a:f8:24 active

Linux:

Linux:
root@noble-venice:~# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.24.20.205  netmask 255.240.0.0  broadcast 172.24.255.255
        inet6 fe80::af3f:d05c:7c8c:9bd3  prefixlen 64  scopeid 0x20<link>
        ether 00:d0:12:8a:f8:24  txqueuelen 1000  (Ethernet)
        RX packets 181  bytes 14541 (14.5 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 60  bytes 5390 (5.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

root@noble-venice:~# ifconfig eth0 hw ether 00:d0:12:8a:f8:25
root@noble-venice:~# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.24.20.205  netmask 255.240.0.0  broadcast 172.24.255.255
        inet6 fe80::af3f:d05c:7c8c:9bd3  prefixlen 64  scopeid 0x20<link>
        ether 00:d0:12:8a:f8:25  txqueuelen 1000  (Ethernet)
        RX packets 243  bytes 18817 (18.8 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 60  bytes 5390 (5.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Venice MAC Addresses

Venice is made of a baseboard and a SOM.

In the case of a SoM+Baseboard the MAC Addresses are stored in the EEPROM of where the MAC is so for a GW72xx/GW73xx for example, eth0's (IMX8M FEC) mac is in the SoM EEPROM and eth1's (LAN7430 PCI GbE) is in the Baseboard EEPROM. The MAC's for Venice and beyond are stored in the EEPROM as a base address and a number of MAC's (so for example a GW74xx's EEPROM specifies 7 MAC addresses for eth0, eth1, lan1, lan2, lan3, lan4, lan5). The MAC's are read from the EEPROM's and assigned to env vars in U-Boot where 'ethaddr' is the first one, and 'eth1addr' the 2nd and so on. The bootloader has code to assign these MAC's to placeholders in the device-tree which the Linux kernel drivers use.

Therefore if you want to assign them manually you can do so in the bootloader (but by default the bootloader does not allow you to alter the eth*addr vars unless you build it with CONFIG_OVERWRITE_ETHADDR_ONCE=y) or you can assign them in Linux depending on your OS (ie in /etc/network/interfaces or manually via cmdline).

If you want to have your own MAC's programmed in our EEPROM you would need a Gateworks special (for both SOM and baseboard depending on where the MAC's are) and give us an address range to use and have this specified in the ECO.

We do not provide a method to change the MAC address in our EEPROM. Doing so would require modifying the board info area and updating the checksum (risky as if you do something wrong, you can't boot properly at all and have to send the board back to us for programming) not to mention the complexity of figuring out which EEPROM to modify.

Also see the Venice Ethernet page: venice/ethernet

Note: See TracWiki for help on using the wiki.