Version 2 (modified by 26 hours ago) ( diff ) | ,
---|
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