Changes between Initial Version and Version 1 of ethernet


Ignore:
Timestamp:
06/06/2025 05:58:24 PM (7 weeks ago)
Author:
Ryan Erbstoesser
Comment:

start page

Legend:

Unmodified
Added
Removed
Modified
  • ethernet

    v1 v1  
     1= Ethernet
     2
     3This is a generic Ethernet page for all Gateworks SBCs.
     4
     5== MAC Address Information and Programming
     6
     7Gateworks can program custom MAC addresses to ethernet on orders of 100 pieces or more (considered a Gateworks special)
     8
     9The ethernet MAC address for onboard ethernet devices come from our Gateworks board-info EEPROM.
     10
     11To see the MAC address, see below examples:
     12
     13U-Boot:
     14{{{
     15u-boot=> print ethaddr # eth0's address
     16ethaddr=00:d0:12:8a:f8:24
     17^^^ U-Boot won't allow you to change this unless you rebuild with
     18CONFIG_OVERWRITE_ETHADDR_ONCE=y
     19
     20u-boot=> net list
     21eth0 : ethernet@30be0000 00:d0:12:8a:f8:24 active
     22
     23}}}
     24
     25Linux:
     26{{{
     27Linux:
     28root@noble-venice:~# ifconfig eth0
     29eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
     30        inet 172.24.20.205  netmask 255.240.0.0  broadcast 172.24.255.255
     31        inet6 fe80::af3f:d05c:7c8c:9bd3  prefixlen 64  scopeid 0x20<link>
     32        ether 00:d0:12:8a:f8:24  txqueuelen 1000  (Ethernet)
     33        RX packets 181  bytes 14541 (14.5 KB)
     34        RX errors 0  dropped 0  overruns 0  frame 0
     35        TX packets 60  bytes 5390 (5.3 KB)
     36        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
     37
     38root@noble-venice:~# ifconfig eth0 hw ether 00:d0:12:8a:f8:25
     39root@noble-venice:~# ifconfig eth0
     40eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
     41        inet 172.24.20.205  netmask 255.240.0.0  broadcast 172.24.255.255
     42        inet6 fe80::af3f:d05c:7c8c:9bd3  prefixlen 64  scopeid 0x20<link>
     43        ether 00:d0:12:8a:f8:25  txqueuelen 1000  (Ethernet)
     44        RX packets 243  bytes 18817 (18.8 KB)
     45        RX errors 0  dropped 0  overruns 0  frame 0
     46        TX packets 60  bytes 5390 (5.3 KB)
     47        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
     48}}}
     49
     50
     51=== Venice MAC Addresses
     52
     53Venice is made of a baseboard and a SOM.
     54
     55In 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.
     56
     57Therefore 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).
     58
     59If 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.
     60
     61We 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.
     62