Upgrade to Fedora 34 on ARM64 caused ethernet not to work unless speed forced down

Hello.

I hope this is the proper place to report an issue on the aarch64 architecture.

I recently upgraded my Orange Pi Zero Plus from Fedora 33 to Fedora 34. After doing so, its ethernet port did not work anymore, or at least it was not getting an IPv4 DHCP address. Having found in the internet similar issues after other upgrades, I applied the same workaround, and it worked: setting the speed to 10 Mbps w/o autonegotiation.

Just in case it matters, under F33 the kernel’s version was 5.11.15-200.fc33.aarch64; under F34 it is 5.14.9-200.fc34.aarch64.

Thank you in advance.

[root@localhost ~]# ip -o a s eth0

2: eth0    inet6 fe80::1:29ff:fe0d:92c0/64 scope link \       valid_lft forever preferred_lft forever
[root@localhost ~]#

[root@localhost ~]# ethtool -s eth0 speed 10 autoneg off
[root@localhost ~]#

[root@localhost ~]# ip -o a s eth0

2: eth0    inet 192.168.1.102/24 brd 192.168.1.255 scope global dynamic noprefixroute eth0\       valid_lft 40810sec preferred_lft 40810sec
2: eth0    inet6 fe80::1:29ff:fe0d:92c0/64 scope link \       valid_lft forever preferred_lft forever
[root@localhost ~]#

[root@localhost ~]# dmesg | grep ethernet
[   23.335623] dwmac-sun8i 1c30000.ethernet: IRQ eth_wake_irq not found
[   23.343545] dwmac-sun8i 1c30000.ethernet: IRQ eth_lpi not found
[   23.360159] dwmac-sun8i 1c30000.ethernet: PTP uses main clock
[   23.478741] dwmac-sun8i 1c30000.ethernet: No HW DMA feature register supported
[   23.486070] dwmac-sun8i 1c30000.ethernet: RX Checksum Offload Engine supported
[   23.493344] dwmac-sun8i 1c30000.ethernet: COE Type 2
[   23.498494] dwmac-sun8i 1c30000.ethernet: TX Checksum insertion supported
[   23.514724] dwmac-sun8i 1c30000.ethernet: Normal descriptors
[   23.520541] dwmac-sun8i 1c30000.ethernet: Chain mode enabled
[   23.550162] dwmac-sun8i 1c30000.ethernet: Found internal PHY node
[   23.577864] dwmac-sun8i 1c30000.ethernet: Switch mux to internal PHY
[   23.584304] dwmac-sun8i 1c30000.ethernet: Powering internal PHY
[   23.643656] dwmac-sun8i 1c30000.ethernet: Switch mux to external PHY
[   36.023264] dwmac-sun8i 1c30000.ethernet eth0: PHY [0.2:01] driver [RTL8211E Gigabit Ethernet] (irq=POLL)
[   36.042532] dwmac-sun8i 1c30000.ethernet eth0: Register MEM_TYPE_PAGE_POOL RxQ-0
[   36.051161] dwmac-sun8i 1c30000.ethernet eth0: No Safety Features support found
[   36.058750] dwmac-sun8i 1c30000.ethernet eth0: No MAC Management Counters available
[   36.066493] dwmac-sun8i 1c30000.ethernet eth0: PTP not supported by HW
[   36.088146] dwmac-sun8i 1c30000.ethernet eth0: configuring for phy/rgmii link mode
[   40.237139] dwmac-sun8i 1c30000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[  212.564936] dwmac-sun8i 1c30000.ethernet eth0: Link is Down
[  216.012275] dwmac-sun8i 1c30000.ethernet eth0: Link is Up - 10Mbps/Full - flow control off
[root@localhost ~]#

This may be a known issue with the driver for the RTL8211E that seems to not work properly at higher speeds (if at all) on some systems. I found this bug as well as other issues.

Please post the output of inxi -Nzxx so we can see the detail of the card. You may need to install inxi.

Searching for drivers may help but you will need the chip ID that will show in the inxi output or in lspci.

1 Like

I downgraded to kernel-5.11.15-300.fc34.aarch64 and to my surprise the problem still happened. Everything was working fine with kernel-5.11.15-200.fc33.aarch64.

Please see below inxi’s output, and some more:

[root@localhost ~]# lspci
[root@localhost ~]#
[root@localhost ~]# inxi -Nzxx
Network: Device-1: sun8i-h3-emac driver: dwmac_sun8i v: kernel port: N/A bus-ID: N/A
chip-ID: allwinner:1c30000
[root@localhost ~]#
[root@localhost ~]# lsmod | sort| grep dwmac_sun8i
dwmac_sun8i 28672 0
mdio_mux 16384 1 dwmac_sun8i
stmmac 245760 2 dwmac_sun8i,stmmac_platform
stmmac_platform 24576 1 dwmac_sun8i
[root@localhost ~]#
[root@localhost ~]# modinfo dwmac-sun8i | head -1
filename: /lib/modules/5.14.9-200.fc34.aarch64/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.ko.xz
[root@localhost ~]#
[root@localhost ~]# rpm -qlv kernel-modules | grep dwmac-sun8i
-rw-r–r-- 1 root root 7840 Sep 30 09:29 /lib/modules/5.14.9-200.fc34.aarch64/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.ko.xz
-rw-r–r-- 1 root root 7740 Apr 16 2021 /lib/modules/5.11.15-300.fc34.aarch64/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.ko.xz
[root@localhost ~]#
[root@localhost ~]# rpm -qlvp test-kernels/kernel-modules-5.11.15-200.fc33.aarch64.rpm | grep dwmac-sun8i.ko
-rw-r–r-- 1 root root 7748 Apr 16 2021 /lib/modules/5.11.15-200.fc33.aarch64/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.ko.xz
[root@localhost ~]#

The chip is an RTL8211E indeed, that’s the label on the chip itself.

I expected the Pi to show more for the ethernet chip. Guess the Orange Pi does not have the ability to report much to inxi.

I found this datasheet for the chipset, but not anything else in more detail.
I also found info on the Orange Pi here. I am not sure it can ever use gigabit ethernet speeds. It also seems limited to 512 MB RAM so that is tight for fedora 34 and going forward.

One thing I note on the documents is that the Zero Plus claims to have both ethernet and wifi, but I did not see the wifi chip in your inxi output.

I installed kernel-5.11.15-200.fc33.aarch64, rebooted, and started this kernel with the GRUB menu. Again to my surprise the problem was happening, which means I’m not getting closer in understanding where it lies.

It is true the Orange Pi Zero Plus only has 512 MB RAM, but it is capable of running the Minimal image quite fine. And I was able to get it to work with its wifi chip adding the specific drivers from GitHub - jwrdegoede/rtl8189ES_linux at rtl8189fs.

Then I flashed another SD card with a backup I took before upgrading, with Fedora 33 and kernel-5.11.15-200.fc33.aarch64; without the wifi driver, that is. The eth0 device works as expected:
[root@opizp ~]# ethtool eth0 | grep -A 2 Speed
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
[root@opizp ~]#

A quick transfer gave speeds up to 51.4 MB/s, 411 Mbps, which is quite decent:
[atorregr@p15s ~]$ dd if=/dev/zero bs=1MB count=1000 status=progress | ssh 192.168.1.102 “cat - >/dev/null”
973000000 bytes (973 MB, 928 MiB) copied, 19 s, 51.2 MB/s
1000+0 records in
1000+0 records out
1000000000 bytes (1.0 GB, 954 MiB) copied, 19.4574 s, 51.4 MB/s
[atorregr@p15s ~]$

Under F33, the dmesg reports the following lines:
[root@opizp ~]# dmesg | grep ethernet
[ 19.854318] dwmac-sun8i 1c30000.ethernet: IRQ eth_wake_irq not found
[ 19.861012] dwmac-sun8i 1c30000.ethernet: IRQ eth_lpi not found
[ 19.913308] dwmac-sun8i 1c30000.ethernet: PTP uses main clock
[ 20.059896] dwmac-sun8i 1c30000.ethernet: No HW DMA feature register supported
[ 20.067387] dwmac-sun8i 1c30000.ethernet: RX Checksum Offload Engine supported
[ 20.074762] dwmac-sun8i 1c30000.ethernet: COE Type 2
[ 20.074782] dwmac-sun8i 1c30000.ethernet: TX Checksum insertion supported
[ 20.074790] dwmac-sun8i 1c30000.ethernet: Normal descriptors
[ 20.074797] dwmac-sun8i 1c30000.ethernet: Chain mode enabled
[ 20.124551] dwmac-sun8i 1c30000.ethernet: Found internal PHY node
[ 20.149578] dwmac-sun8i 1c30000.ethernet: Switch mux to internal PHY
[ 20.156104] dwmac-sun8i 1c30000.ethernet: Powering internal PHY
[ 20.178624] dwmac-sun8i 1c30000.ethernet: Switch mux to external PHY
[ 32.086824] dwmac-sun8i 1c30000.ethernet eth0: PHY [0.2:01] driver [RTL8211E Gigabit Ethernet] (irq=POLL)
[ 32.111472] dwmac-sun8i 1c30000.ethernet eth0: No Safety Features support found
[ 32.118896] dwmac-sun8i 1c30000.ethernet eth0: No MAC Management Counters available
[ 32.126756] dwmac-sun8i 1c30000.ethernet eth0: PTP not supported by HW
[ 32.173853] dwmac-sun8i 1c30000.ethernet eth0: configuring for phy/rgmii-id link mode
[ 35.356313] dwmac-sun8i 1c30000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[root@opizp ~]#

Comparing this with F34’s output I see two differences:
1/ This message appears under F34: “Register MEM_TYPE_PAGE_POOL RxQ-0”, not under F33
2/ F33’s message “configuring for phy/rgmii-id link mode” is replaced with F34’s “configuring for phy/rgmii link mode”

I don’t know how important these messages are, but anyway: isn´t this a bug in F34? The interface worked fine under F31, F32 and F33, it only started misbehaving under F34. These messages appear to be part of the stmmac driver. Is there any way I can activate deeper debugging messages?