DESK-MX6-L/Pheripherals/Ethernet
History | |||
---|---|---|---|
ID# | Issue Date | Notes | |
16/07/2021 | First DESK release | ||
03/03/2022 | DESK 3.0.0 release | ||
11/05/2022 | Added info for 1Gbps connection |
Contents
Peripheral Ethernet[edit | edit source]
The ethernet interface is made available through the i.MX6 fec interface which should be initialized on the device tree.
Device tree configuration[edit | edit source]
Here below an example of device tree configuration used on standard DAVE's kit for the AXEL Lite SOM:
From imx6qdl-axelcommon.dtsi
:
&fec { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet_axel>; phy-mode = "rgmii"; phy-handle = <ðphy>; status = "okay"; mdio { #address-cells = <1>; #size-cells = <0>; ethphy: ethernet-phy@7 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <7>; }; }; }; &iomuxc { ... ... enet { pinctrl_enet_axel: enetgrp-1 { fsl,pins = < MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b0b0 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0 MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0xb0b1 MX6QDL_PAD_SD4_DAT3__GPIO2_IO11 0xb0b1 MX6QDL_PAD_SD4_DAT2__GPIO2_IO10 0xb0b1 >; }; }; ... ... };
Accessing the peripheral[edit | edit source]
AXEL LITE SOM provides the network interface mapped at eth0.
Linux messages at boot time[edit | edit source]
... ... [ 3.915846] fec 2188000.ethernet eth0: registered PHC device 0 ... ... [ 14.798116] Micrel KSZ9031 Gigabit PHY 2188000.ethernet-1:07: attached PHY driver [Micrel KSZ9031 Gigabit PHY] (mii_bus:phy_addr=2188000.ethernet-1:07, irq=POLL) ... ...
Cable connection:
... ... [ 12.850105] fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx ... ...
Check the interface with ifconfig[edit | edit source]
root@desk-mx6:~# ifconfig eth0 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.4.39 netmask 255.255.255.0 broadcast 192.168.4.255 inet6 fe80::e4ec:efff:fe76:fcf7 prefixlen 64 scopeid 0x20<link> ether e6:ec:ef:76:fc:f7 txqueuelen 1000 (Ethernet) RX packets 3588 bytes 762212 (744.3 KiB) RX errors 0 dropped 1070 overruns 0 frame 0 TX packets 217 bytes 51775 (50.5 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Test with iperf[edit | edit source]
root@desk-mx6:~# iperf3 -t 5 -c 192.168.4.47 Connecting to host 192.168.4.47, port 5201 [ 5] local 192.168.4.39 port 42232 connected to 192.168.4.47 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 11.4 MBytes 95.2 Mbits/sec 0 132 KBytes [ 5] 1.00-2.00 sec 11.1 MBytes 92.8 Mbits/sec 0 146 KBytes [ 5] 2.00-3.00 sec 11.0 MBytes 92.3 Mbits/sec 0 146 KBytes [ 5] 3.00-4.00 sec 11.0 MBytes 92.3 Mbits/sec 0 146 KBytes [ 5] 4.00-5.00 sec 11.1 MBytes 92.8 Mbits/sec 0 153 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-5.00 sec 55.5 MBytes 93.1 Mbits/sec 0 sender [ 5] 0.00-5.01 sec 55.2 MBytes 92.4 Mbits/sec receiver iperf Done.
Gigabit ethernet[edit | edit source]
AXEL LITE SOM provides the 4 twisted pair data line for interfacing a magnetic transformer supporting the Gigabit ethernet interface. Due to the most popular and cheaper 100Mbps interface used in the Industrial field, the standard configuration (hardware and software) for the ethernet interface is 100Mbps. Furthermore, the 1Gps negotiation requires a longer time so, if not required, it is better to keep the interface configured at the real speed used.
The following paragraphs describe how to change the default configuration for supporting 1Gbps ethernet hardware and software configuration.
Hardware connections[edit | edit source]
The AXEL Lite EVK schematics show how to connect the ethernet physical interface to a 10/100Mbs or 1Gbps connectors. For a 1Gbps connection, it is enough to connect all 4 pair lines (in the EVK schematics there is an optional R-Pack RP2 to be mounted)
Software configuration[edit | edit source]
Standard DESK-MX6-L BSP is configured for a 100Mbps interface configuration. For enabling 1Gbps, the following u-boot environment variable has to be defined (and saved) in the environment:
=> setenv disable_giga 0 => saveenv
U-Boot network driver for the ethernet PHY drivers/net/phy/micrel_ksz90x1.c
uses this variable for enabling/disabling the speed and autonegotiation for the 1000 speed.
Moreover, the following device tree entry in the imx6dl-axellite.dtsi
(or imx6q-axellite.dtsi
if the SOC is a i.MX6Q) file, should be changed from:
ðphy { max-speed = <100>; };
to:
ðphy { max-speed = <1000>; };
Limitations[edit | edit source]
As per official NXP Chip errata documentation ERR004512, the i.MX6S/DL/Q have a maximum performance limited to 470Mpbs:
The theoretical maximum performance of 1 Gbps ENET is limited to 470 Mbps (total for Tx and Rx). The actual measured performance in an optimized environment is up to 400 Mbps
Linux messages at boot time[edit | edit source]
Cable connection:
... ... [ 15.360433] fec 2188000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx [ 15.368136] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready ... ...
Test with iperf[edit | edit source]
The following test shows a real case with a 390Mbps transfer rate (depending on the testbed) but a >=400Mbps (limited to 470Mbps) can be obtained:
root@desk-mx6:~# iperf3 -c 192.168.8.125 Connecting to host 192.168.8.125, port 5201 [ 5] local 192.168.8.106 port 35804 connected to 192.168.8.125 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 46.5 MBytes 390 Mbits/sec 0 352 KBytes [ 5] 1.00-2.00 sec 46.4 MBytes 389 Mbits/sec 0 368 KBytes [ 5] 2.00-3.00 sec 46.5 MBytes 390 Mbits/sec 0 443 KBytes [ 5] 3.00-4.00 sec 47.0 MBytes 394 Mbits/sec 0 443 KBytes [ 5] 4.00-5.00 sec 46.8 MBytes 393 Mbits/sec 0 462 KBytes [ 5] 5.00-6.00 sec 45.4 MBytes 381 Mbits/sec 0 387 KBytes [ 5] 6.00-7.00 sec 46.4 MBytes 389 Mbits/sec 0 410 KBytes [ 5] 7.00-8.00 sec 45.9 MBytes 385 Mbits/sec 0 461 KBytes [ 5] 8.00-9.00 sec 47.4 MBytes 397 Mbits/sec 0 474 KBytes [ 5] 9.00-10.00 sec 46.4 MBytes 389 Mbits/sec 0 495 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 465 MBytes 390 Mbits/sec 0 sender [ 5] 0.00-10.00 sec 463 MBytes 389 Mbits/sec receiver iperf Done. root@desk-mx6:~#