ConnectCore 6UL Express and eth0 problems

I have couple 6UL Express cards that ethernet works on uboot but dosnt work in linux

ethernet led activity is solid in uboot but in linux led go on and off about 1 sec

normal boards go ok and i have installed them same way by tftp
new 3.0-r3 have some problems via sd card… dosnt work… that why tftp

i try to ping 192.168.2.2
and its ok by uboot
but not in linux

I have drop boot messages from here… because 8000 char is problem…
ask if you want some step all messages

########### first boot to system and stop uboot. ############################
U-Boot dub-2020.04-r2.2+ge135e76d14 (Jan 21 2021 - 22:46:12 +0000)

CPU: i.MX6UL rev1.1 528 MHz (running at 396 MHz)
CPU: Industrial temperature grade (-40C to 105C) at 31C
Reset cause: POR
I2C: ready
DRAM: 256 MiB
MCA: HW_VER=1 FW_VER=1.01
PMIC: PFUZE3000 DEV_ID=0x30 REV_ID=0x11
NAND: 256 MiB
MMC: FSL_SDHC: 1
In: serial
Out: serial
Err: serial
Model: Digi International ConnectCore 6UL Starter Board.
ConnectCore 6UL SOM variant 0x02: Industrial Ultralite 528MHz, 256MB NAND, 256MB DDR3, -40/+85C, Wireless, Bluetooth
Board version 4, ID 129
Boot device: NAND
Net: FEC0 [PRIME]
Fastboot: Normal
Normal Boot
Hit any key to stop autoboot: 0

=> setenv ipaddr 192.168.2.50
=> setenv serverip 192.168.2.2
=> saveenv

Saving Environment to NAND… Erasing NAND…
Erasing at 0x300000 – 100% complete.
Writing to NAND… OK
OK
####### imx update to board ( its same version that there was
U-Boot dub-2020.04-r2.2+ge135e76d14 (Jan 21 2021 - 22:46:12 +0000)

…Normal Boot
Hit any key to stop autoboot: 0
=> update uboot tftp u-boot-ccimx6ulstarter-2020.04-r0.imx
Do you really want to program the boot loader? y
Using FEC0 device
TFTP from server 192.168.2.2; our IP address is 192.168.2.50
Filename ‘u-boot-ccimx6ulstarter-2020.04-r0.imx’.
Load address: 0x80800000
Loading: #################################################
3.7 MiB/s
done
Bytes transferred = 715776 (aec00 hex)
Writing bootstream…OK

boot again and set ip addresses for tftp

U-Boot dub-2020.04-r2.2+ge135e76d14 (Jan 21 2021 - 22:46:12 +0000)

Normal Boot
Hit any key to stop autoboot: 0
=> env default -a
*** Warning - ## Resetting to default environment
, using default environment

Error: Can’t overwrite “ethaddr”

himport_r: can’t insert “ethaddr=00:04:f3:ff:ff:fa” into hash table

=> setenv ipaddr 192.168.2.50
=> setenv serverip 192.168.2.2
=> saveenv
Saving Environment to NAND… Erasing redundant NAND…
Erasing at 0x320000 – 100% complete.
Writing to redundant NAND… OK
OK

U-Boot dub-2020.04-r2.2+ge135e76d14 (Jan 21 2021 - 22:46:12 +0000)
…Hit any key to stop autoboot: 0
=> update linux tftp core-image-base-ccimx6ulstarter.boot.ubifs
Using FEC0 device
TFTP from server 192.168.2.2; our IP address is 192.168.2.50
Filename ‘core-image-base-ccimx6ulstarter.boot.ubifs’.
Load address: 0x80800000
Loading: ########…########
4.7 MiB/s
done
…8634368 bytes written to volume linux
Verifying firmware…
Update was successful
=> update rootfs tftp core-image-base-ccimx6ulstarter.rootfs.ubifs
Using FEC0 device
TFTP from server 192.168.2.2; our IP address is 192.168.2.50
Filename ‘core-image-base-ccimx6ulstarter.rootfs.ubifs’.
Load address: 0x80800000
Loading: #######…#########
4.8 MiB/s
done
Bytes transferred = 78217216 (4a98000 hex)
…78217216 bytes written to volume rootfs
Verifying firmware…
Update was successful
=> update recovery tftp core-image-base-ccimx6ulstarter.recovery.ubifs
Using FEC0 device
TFTP from server 192.168.2.2; our IP address is 192.168.2.50
Filename ‘core-image-base-ccimx6ulstarter.recovery.ubifs’.
Load address: 0x80800000
Loading: ########…#######
4.7 MiB/s
done
…12697600 bytes written to volume recovery
Verifying firmware…
Update was successful
=>

=>
=> ping 192.168.2.2
Using FEC0 device
host 192.168.2.2 is alive

U-Boot dub-2020.04-r2.2+ge135e76d14 (Jan 21 2021 - 22:46:12 +0000)

…Normal Boot
Hit any key to stop autoboot: 0
…Starting kernel …

Booting Linux on physical CPU 0x0
Linux version 5.4.84-dey+gb19c068819ba (oe-user@oe-host) (gcc version 9.2.0 (GCC)) #1
Digi Embedded Yocto 3.0-r3 ccimx6ulstarter /dev/ttymxc4

ccimx6ulstarter login: root
root@ccimx6ulstarter:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:04:F3:12:84:90
inet6 addr: fe80::204:f3ff:fe12:8490/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:110 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:11044 (10.7 KiB)

root@ccimx6ulstarter:~# nmcli con edit eth0

nmcli> set ipv4.addresses 192.168.2.50/24
Do you also want to set ‘ipv4.method’ to ‘manual’? [yes]:
nmcli> save
Connection ‘eth0’ (dce47dc1-937e-360e-bcb2-a5745f1e170b) successfully updated.
nmcli> print ipv4
[‘ipv4’ setting values]
ipv4.method: manual
ipv4.addresses: 192.168.2.50/24
ipv4.gateway: –
ipv4.routes: –
ipv4.route-metric: -1
ipv4.route-table: 0 (unspec)
ipv4.routing-rules: –
ipv4.may-fail: yes
ipv4.dad-timeout: -1 (default)
nmcli> quit
root@ccimx6ulstarter:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:04:F3:12:84:90
inet6 addr: fe80::204:f3ff:fe12:8490/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:136 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:14388 (14.0 KiB)

root@ccimx6ulstarter:~# nmcli con down eth0
Connection ‘eth0’ successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
root@ccimx6ulstarter:~# nmcli con up eth0

(process:998): GLib-GIO-WARNING **: 23:29:14.029: …/glib-2.60.7/gio/gdbusobjectmanagerclient.c:1588: Processing InterfaceRemoved signal for path /org/freedesktop/NetworkManager/IP6Config/13 but no object proxy exists
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
root@ccimx6ulstarter:~# nmcli con down eth0
Connection ‘eth0’ successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
root@ccimx6ulstarter:~# nmcli con up eth0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
root@ccimx6ulstarter:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:04:F3:12:84:90
inet addr:192.168.2.50 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:161 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:16614 (16.2 KiB)

root@ccimx6ulstarter:~# ping 192.168.2.50
64 bytes from 192.168.2.50: seq=0 ttl=64 time=0.332 ms

root@ccimx6ulstarter:~# ping 192.168.2.2
PING 192.168.2.2 (192.168.2.2): 56 data bytes

^C
— 192.168.2.2 ping statistics —
5 packets transmitted, 0 packets received, 100% packet loss

2 Likes

Just to make sure I understand. You have a number of cc6ul Starter boards. All boards have ethernet working in U-boot, but some do not have ethernet working in Linux, while some do work using the same images. Is this correct? Are you using stock images from here:
ConnectCore 6UL SBC Express: https://ftp1.digi.com/support/digiembeddedyocto/3.0/r3/images/ccimx6ulstarter-installer.zip
Have you tried using DHCP from Linux?

I have kind of the same Problems.
First the Problem with the SD-Card (I already made a new Question)
And second, with the network
I use a custom board with a LAN8742.
From about 50 Devices 2 of them show these problems.

The network is working fine in U-Boot but after boot both LEDs blink every 1s, and on the terminal I get following messages in a continuous row:

fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
fec 2188000.ethernet eth0: Link is Down
fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
fec 2188000.ethernet eth0: Link is Down

We recently had this issue on our custom cards. Ethernet would work solidly in uboot but not in Linux on about 5% of the cards.
The bad cards could usually establish a link in Linux by disabling autonegotiation and setting them to 10Mb using ethtool. Same issue was seen on DEY2.4, 2.6 and 3.0 based SW and various SoM date codes.

Findings: The PHY clock is disabled by the driver during Linux boot (for power saving reasons I think) and Linux is supposed to reset the Phy again after reenabling the clock.
This clock disable is not according to the the Phy spec so the Phy must be reset again after the clock has been reenabled or else we will have an unspecified state.

However, this last reset doesnt happend at all. If the Phy clock and reset is monitored with an oscilloscope there is no reset activity after the clock has been reenabled during Linux boot.
According to the SW developer working on this it was because both the FEC and the MDIO driver is trying to use the reset pin but only one driver can access it.
It was solved by a device tree change moving the reset pin from the FEC to the MDIO node. The fix was tested only on DEY3.0 but with this fix all cards have been working properly since

Patch:
/recipes-kernel/linux/linux-dey/imx6ul-ccimx6ulsbc-id82.dts

51 51 pinctrl-0 = <&pinctrl_enet1>,
52 52 <&pinctrl_enet1_mdio>;
53 53 phy-handle = <&ethfec1phy0>;
54 + phy-reset-gpios = <0>;
54 55
55 56 mdio {

60 61 compatible = “ethernet-phy-ieee802.3-c22”;
61 62 smsc,disable-energy-detect;
62 63 reg = <0>;
64 + reset-names = “phy”;
65 + reset-gpios = <&mca_gpio 7 GPIO_ACTIVE_LOW>;
66 + reset-assert-us = <2600>;
67 + reset-deassert-us = <2000>;
63 68 };
64 69 };
65 70 };

3 Likes

I havent have possibility to test dhcp . I have these cards in my office and i havent be there because some long factory installation trips…

i have use that stock installer and images 3.0.r3
or exactly download these manual to my linux and use tftp install way because sd-card way dosnt work. Like user dbau write in question

I have been busy these couple weeks but i can test this dhcp maybe after one or two week.

And i try this setting speed to 10Mbit by ethtool

If i have time i test this andersnilssons device-tree modifications

there was a bug in cc6ul Starter U-boot in dey-3.0 r3. please try r4 images https://ftp1.digi.com/support/digiembeddedyocto/3.0/r4/images/ccimx6ulstarter-installer.zip