How to add Single/Dual Ethernet to our i.MX8 Boards

Published on February 9, 2022

In this post, we would like to show how to add Single/Dual Ethernet to our i.MX8 Boards using the innodisk EMPL-G103/G203 module. which can connect to any of our i.MX8 platforms with a mPCIe connector. This peripheral module allows for LAN/ethernet expansion beyond the native LAN/ethernet port on the i.MX8. The EMPL-G103 allows for one extra ethernet port, while the EMPL-G203 allows for two. Lets demonstrate the EMPL-G203 connected to our Nitrogen8M Plus SOM + ENC Carrier Board, while using our latest Yocto Hardknott image.

Hardware Installation

The module connects via PCIe. The connection to the Nitrogen8MP + ENC Carrier is shown below:

Software Installation

This module can run on any of our OS Images, but the testing was done with our latest Yocto Hardknott image.

Validating the module works

After connecting the module via the PCIe slot on the Carrier (in this case we are connecting the EMPL-G203 for dual LAN ports, but the same applies for the EMPL-G103 single LAN port) and flashing the yocto image on the SOM, we can now boot up and validate that the module is detected and additional LAN(s) show up as network interfaces. First, let's use lspci to validate the module is detected root@nitrogen8mp:~# lspci 00:00.0 PCI bridge: Synopsys, Inc. DWC_usb3 / PCIe bridge (rev 01) 01:00.0 PCI bridge: Pericom Semiconductor Device 2303 (rev 05) 02:01.0 PCI bridge: Pericom Semiconductor Device 2303 (rev 05) 02:02.0 PCI bridge: Pericom Semiconductor Device 2303 (rev 05) 03:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03) 04:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03) As we can see, lspci lists both interfaces. Now lets see if the additional LAN(s) show up as network interfaces. You test this with the ifconfig command: root@nitrogen8mp:~# ifconfig enp3s0 enp3s0 Link encap:Ethernet HWaddr F8:02:78:20:FE:F6 inet addr:10.0.0.2 Bcast:10.255.255.255 Mask:255.0.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:31939 errors:0 dropped:0 overruns:0 frame:0 TX packets:293678 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2117387 (2.0 MiB) TX bytes:443811010 (423.2 MiB) Memory:18100000-181fffff root@nitrogen8mp:~# ifconfig enp4s0 enp4s0 Link encap:Ethernet HWaddr F8:02:78:20:FE:F7 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Memory:18400000-184fffff As we can see, ifconfig shows both interfaces, enp3s0 and enp4s0. Note that for testing (next section), we assigned a static address to enp3s0.

Testing the Performance

To test the performance, we will connect the enp3s0 interface directly to another Gibabit interface, which in this case is an Ubuntu 20.04 PC. Then we will use the iperf3 utility to test the performance, where the Ubuntu PC is the server and the Nitrogen8MP board is the client: root@nitrogen8mp:~# iperf3 -c 10.0.0.1 Connecting to host 10.0.0.1, port 5201 [ 5] local 10.0.0.2 port 55390 connected to 10.0.0.1 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 114 MBytes 954 Mbits/sec 0 380 KBytes [ 5] 1.00-2.00 sec 113 MBytes 947 Mbits/sec 0 399 KBytes [ 5] 2.00-3.00 sec 112 MBytes 942 Mbits/sec 0 399 KBytes [ 5] 3.00-4.00 sec 112 MBytes 938 Mbits/sec 0 399 KBytes [ 5] 4.00-5.00 sec 112 MBytes 937 Mbits/sec 0 444 KBytes ^C[ 5] 5.00-5.42 sec 46.6 MBytes 939 Mbits/sec 0 444 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-5.42 sec 609 MBytes 943 Mbits/sec 0 sender [ 5] 0.00-5.42 sec 0.00 Bytes 0.00 bits/sec receiver iperf3: interrupt - the client has terminated As you can see, the performance is exceptional and on par with Gigabit ethernet. There you have it, a plug and play solution for expanding LAN/ethernet ports using the innodisk EMPL-G103/G203 module on our Nitrogen8M Plus SOM. The innodisk solution can also be used with our Nitrogen8M & 8M Mini SBCs. If you have any issues, please email support@boundarydevices.com