Second Ethernet

Hello community!

I am working with a colibri IMX6ULL-512MB and Yocto-Project BSP 6.

I have some problems.
Add another phy KSZ8081RNA for Ethernet.
Modify the device tree to include the second Ethernet.
Here is my new device tree:

&fec1 {
   	pinctrl-names = "default", "sleep";
   	pinctrl-0 = <&pinctrl_enet1>;
   	pinctrl-1 = <&pinctrl_enet1_sleep>;
   	phy-mode = "rmii";
   	phy-reset-gpios = <&gpio2 18 GPIO_ACTIVE_LOW>; //reset  /* SODIMM 192 */
   	phy-handle = <&ethphy0>;
   	phy-supply = <&reg_eth_phy>; 
    status = "okay";

 };

&fec2 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&pinctrl_enet2>;
	pinctrl-1 = <&pinctrl_enet2_sleep>;
	phy-mode = "rmii";
	phy-handle = <&ethphy1>;
	phy-supply = <&reg_eth_phy>;
	status = "okay";

	mdio {
		#address-cells = <1>;
		#size-cells = <0>;

		//creado para fec1
 		ethphy0: ethernet-phy@0 {
 			compatible = "ethernet-phy-ieee802.3-c22";
 			max-speed = <100>;
 			reg = <0>; //esto lo tienen en 0 pero yo lo vi en algun lado que decia 1
 		};
		//fin bloque
		ethphy1: ethernet-phy@2 {
			compatible = "ethernet-phy-ieee802.3-c22";
			max-speed = <100>;
			reg = <2>;
		};
	};
};
.
.
.
&iomuxc {
.
.
.
pinctrl_enet2: enet2grp {
		fsl,pins = <
			MX6UL_PAD_GPIO1_IO06__ENET2_MDIO	0x1b0b0
			MX6UL_PAD_GPIO1_IO07__ENET2_MDC		0x1b0b0
			MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00	0x1b0b0
			MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01	0x1b0b0
			MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN	0x1b0b0
			MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER	0x1b0b0
			MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2	0x4001b031
			MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00	0x1b0b0
			MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01	0x1b0b0
			MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN	0x1b0b0
		>;
	};

	pinctrl_enet2_sleep: enet2-sleepgrp {
		fsl,pins = <
			MX6UL_PAD_GPIO1_IO06__GPIO1_IO06	0x0
			MX6UL_PAD_GPIO1_IO07__GPIO1_IO07	0x0
			MX6UL_PAD_ENET2_RX_DATA0__GPIO2_IO08	0x0
			MX6UL_PAD_ENET2_RX_DATA1__GPIO2_IO09	0x0
			MX6UL_PAD_ENET2_RX_EN__GPIO2_IO10	0x0
			MX6UL_PAD_ENET2_RX_ER__GPIO2_IO15	0x0
			MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2	0x4001b031
			MX6UL_PAD_ENET2_TX_DATA0__GPIO2_IO11	0x0
			MX6UL_PAD_ENET2_TX_DATA1__GPIO2_IO12	0x0
			MX6UL_PAD_ENET2_TX_EN__GPIO2_IO13	0x0
		>;
	};


	pinctrl_enet1: enet1grp {
		fsl,pins = <
			MX6UL_PAD_GPIO1_IO04__ENET1_REF_CLK1	0x4001b031	/* SODIMM 19 */
			MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN		0x1b0b0		/* SODIMM 178 */
			MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00	0x1b0b0		/* SODIMM 188 */
			MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00	0x1b0b0		/* SODIMM 55 */
			MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01	0x1b0b0		/* SODIMM 63 */		   
			MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER      0x1b0b0 	/* SODIMM 104 */
			MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01	0x1b0b0		/* SODIMM 73 */
			MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN		0x1b0b0		/* SODIMM 30 */		
			MX6UL_PAD_SD1_DATA0__GPIO2_IO18			0x10b0	 	/* SODIMM 192 */				
		>;
	};

	pinctrl_enet1_sleep: enet1-sleepgrp {
		fsl,pins = <
			MX6UL_PAD_ENET1_RX_DATA0__GPIO2_IO00	0x0
			MX6UL_PAD_ENET1_RX_DATA1__GPIO2_IO01	0x0
			MX6UL_PAD_ENET1_RX_EN__GPIO2_IO02	0x0
			MX6UL_PAD_ENET1_RX_ER__GPIO2_IO07	0x0
			MX6UL_PAD_GPIO1_IO04__ENET1_REF_CLK1	0x4001b031
			MX6UL_PAD_ENET1_TX_DATA0__GPIO2_IO03	0x0
			MX6UL_PAD_ENET1_TX_DATA1__GPIO2_IO04	0x0
			MX6UL_PAD_ENET1_TX_EN__GPIO2_IO05	0x0
		>;			
	};
.
.
.

TEST
The eth1 interface is successfully created, obtains an IP, and is recognized by other devices.

The problem is that eth1 shares some address with eth0. Because, when I make a ping eth1 (IP: 172.10.11.71), I got a response, but when I disconnect the cable from eth0. Lose connection.

Also, if I ping eth1 172.10.11.71 and unplug its cable, there is no response. That ensures that the eth1 interface works correctly.

Another test, ping eth0 (172.10.11.59), if I disconnect the cable from eth1, there is no problem, eth0 continues to respond. This is correct too.

Here I share test images:

Is the problem in the device tree or do I have to configure the eth1 interface?

Here I show you the ip route and netstat

Hi, I’m the Toradex AI Assistant. I’m in early beta, and I would appreciate your feedback.
The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


Hello,

Based on the information provided, it seems like your device tree configuration for the second Ethernet interface on the Colibri iMX6ULL is mostly correct. However, the issue you’re experiencing with the Ethernet interfaces might not be directly related to the device tree configuration but could be related to the network configuration or a potential hardware issue.

Given that eth1 is working correctly (obtains an IP and responds to pings) until eth0’s cable is disconnected, it suggests that the device tree and driver initialization for both Ethernet interfaces are likely correct. The problem might lie in how the network interfaces are configured at the software level or a possible issue with how the physical connections or isolation between the two Ethernet PHYs are implemented on your carrier board.

Here are a few steps to troubleshoot and potentially resolve the issue:

  1. Check Network Configuration: Ensure that both eth0 and eth1 have unique MAC addresses and are configured on separate subnets or are correctly managed by your network’s DHCP server to avoid IP conflicts.

  2. Review PHY Isolation: On the hardware side, ensure that there is proper electrical isolation between the two PHYs. This includes checking for any shared power supplies or grounds that might not be correctly isolated when one of the interfaces is powered down or disconnected.

  3. Linux Network Stack Configuration: Investigate the Linux network stack configuration to ensure there are no bridging or bonding configurations inadvertently linking eth0 and eth1 at the software level.

  4. Physical Layer Diagnostics: Utilize ethtool to run diagnostics on both eth0 and eth1 to check for any physical layer issues or errors that might indicate a problem with the PHY configuration or the physical connection itself.

  5. Debugging with System Logs: Look into the kernel log messages (dmesg) for any warnings or errors related to the Ethernet interfaces when you plug or unplug the Ethernet cables. This might provide clues on whether the issue is related to the device tree configuration or the driver’s handling of the interfaces.

  6. Device Tree Review: Double-check the device tree settings for both Ethernet interfaces, paying close attention to the PHY addresses and any shared resources. Ensure that the PHY addresses (reg = <0>; and reg = <2>;) correctly match your hardware design and that there are no conflicts.

If after these steps the issue persists, it might be beneficial to compare your hardware design with the reference designs provided by Toradex, especially if you’re using a custom carrier board. Ensure that the Ethernet PHYs are

Please, also check if these links can help you solve your problem:

Ethernet/Network (Linux) | Toradex Developer Center.

I saw the link Network on Toradex computer in modules and my question is:
Is it necessary to create another node, like here?

 reg_eth2phy: regulator-eth2phy {
        compatible = "regulator-fixed";
        enable-active-high;
        gpio = <&gpio_expander_21 4 GPIO_ACTIVE_HIGH>; /* PWR_CTRL_4/ETH_PWR_EN */
        off-on-delay = <500000>;
        regulator-max-microvolt = <3300000>;
        regulator-min-microvolt = <3300000>;
        regulator-name = "+V3.3_ETH";
        startup-delay-us = <200000>;
        vin-supply = <&reg_3p3v>;
    };

or can I reuse the same reg_eth_phy as the fec2?

also,

root@colibri-imx6ull-14938795:~# ip route
default via 172.10.10.2 dev eth0
172.10.0.0/16 dev eth0 proto kernel scope link src 172.10.11.59
172.10.0.0/16 dev eth1 proto kernel scope link src 172.10.11.71
172.10.10.2 dev eth1 scope link
172.10.10.2 dev eth0 scope link
212.227.81.55 via 172.10.10.2 dev eth0
root@colibri-imx6ull-14938795:~# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         172.10.10.2     0.0.0.0         UG        0 0          0 eth0
172.10.0.0      0.0.0.0         255.255.0.0     U         0 0          0 eth0
172.10.0.0      0.0.0.0         255.255.0.0     U         0 0          0 eth1
172.10.10.2     0.0.0.0         255.255.255.255 UH        0 0          0 eth1
172.10.10.2     0.0.0.0         255.255.255.255 UH        0 0          0 eth0
212.227.81.55   172.10.10.2     255.255.255.255 UGH       0 0          0 eth0

Is it correct ?

I share whit you the log messeges

root@colibri-imx6ull-14938795:~# dmesg
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 6.1.65-6.5.0-devel+git.c6114c845984 (oe-user@oe-host) (arm-tdx-linux-gnueabi-gcc (GCC) 11.4.0, GNU ld (GNU Binutils) 2.38.20220708) #1 SMP Sun Dec  3 06:32:13 UTC 2023
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Toradex Colibri iMX6ULL 512MB on Colibri Evaluation Board V3
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 192 MiB at 0x94000000
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000080000000-0x000000009fffffff]
[    0.000000]   HighMem  empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x000000009fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x000000009fffffff]
[    0.000000] percpu: Embedded 12 pages/cpu s18836 r8192 d22124 u49152
[    0.000000] pcpu-alloc: s18836 r8192 d22124 u49152 alloc=12*4096
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 130048
[    0.000000] Kernel command line: user_debug=30 ubi.mtd=ubi root=ubi0:rootfs rw rootfstype=ubifs ubi.fm_autoconvert=1 console=tty1 console=ttymxc0,115200n8 consoleblank=0 video=mxsfb:640x480M-16@60
[    0.000000] Unknown kernel command line parameters "user_debug=30", will be passed to user space.
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 303488K/524288K available (11264K kernel code, 1238K rwdata, 3900K rodata, 1024K init, 437K bss, 24192K reserved, 196608K cma-reserved, 0K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] Switching to timer-based delay loop, resolution 41ns
[    0.000003] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.000044] clocksource: mxc_timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.003131] Console: colour dummy device 80x30
[    0.004121] printk: console [tty1] enabled
[    0.004215] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.004301] CPU: Testing write buffer coherency: ok
[    0.004428] pid_max: default: 32768 minimum: 301
[    0.004864] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.004960] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.007133] CPU0: update cpu_capacity 1024
[    0.007228] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.009808] cblist_init_generic: Setting adjustable number of callback queues.
[    0.009907] cblist_init_generic: Setting shift to 0 and lim to 1.
[    0.010519] Setting up static identity map for 0x80100000 - 0x80100078
[    0.011034] rcu: Hierarchical SRCU implementation.
[    0.011102] rcu:     Max phase no-delay instances is 1000.
[    0.014084] smp: Bringing up secondary CPUs ...
[    0.014172] smp: Brought up 1 node, 1 CPU
[    0.014226] SMP: Total of 1 processors activated (48.00 BogoMIPS).
[    0.014279] CPU: All CPU(s) started in SVC mode.
[    0.015555] devtmpfs: initialized
[    0.036797] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.037462] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.037586] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[    0.052198] pinctrl core: initialized pinctrl subsystem
[    0.056019] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.073831] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.076852] thermal_sys: Registered thermal governor 'step_wise'
[    0.077052] cpuidle: using governor menu
[    0.077383] CPU identified as i.MX6ULL, silicon rev 1.1
[    0.088774] platform soc: Fixed dependency cycle(s) with /soc/bus@2000000/gpc@20dc000
[    0.109015] platform 20e0000.pinctrl: Fixed dependency cycle(s) with /soc/bus@2000000/pinctrl@20e0000/gpio7grp
[    0.109163] platform 20e0000.pinctrl: Fixed dependency cycle(s) with /soc/bus@2000000/pinctrl@20e0000/gpio4grp
[    0.109269] platform 20e0000.pinctrl: Fixed dependency cycle(s) with /soc/bus@2000000/pinctrl@20e0000/gpio3grp
[    0.109368] platform 20e0000.pinctrl: Fixed dependency cycle(s) with /soc/bus@2000000/pinctrl@20e0000/gpio2grp
[    0.109463] platform 20e0000.pinctrl: Fixed dependency cycle(s) with /soc/bus@2000000/pinctrl@20e0000/gpio1grp
[    0.124340] platform 2290000.iomuxc-snvs: Fixed dependency cycle(s) with /soc/bus@2200000/iomuxc-snvs@2290000/snvsgpio1grp
[    0.125795] platform connector: Fixed dependency cycle(s) with /soc/bus@2100000/usb@2184000/port/endpoint
[    0.127064] platform panel-dpi: Fixed dependency cycle(s) with /soc/bus@2100000/lcdif@21c8000/port/endpoint
[    0.135516] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.135630] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.137731] imx6ul-pinctrl 20e0000.pinctrl: Invalid fsl,pins or pins property in node /soc/bus@2000000/pinctrl@20e0000/canintgrp
[    0.137971] imx6ul-pinctrl 20e0000.pinctrl: Invalid fsl,pins or pins property in node /soc/bus@2000000/pinctrl@20e0000/gpioblongrp
[    0.138141] imx6ul-pinctrl 20e0000.pinctrl: no fsl,pins and pins property in node /soc/bus@2000000/pinctrl@20e0000/gpio7grp
[    0.138270] imx6ul-pinctrl 20e0000.pinctrl: no fsl,pins and pins property in node /soc/bus@2000000/pinctrl@20e0000/i2c1grp
[    0.138381] imx6ul-pinctrl 20e0000.pinctrl: no fsl,pins and pins property in node /soc/bus@2000000/pinctrl@20e0000/i2c1-gpiogrp
[    0.138521] imx6ul-pinctrl 20e0000.pinctrl: Invalid fsl,pins or pins property in node /soc/bus@2000000/pinctrl@20e0000/pwm4grp
[    0.138625] imx6ul-pinctrl 20e0000.pinctrl: Invalid fsl,pins or pins property in node /soc/bus@2000000/pinctrl@20e0000/pwm5grp
[    0.138724] imx6ul-pinctrl 20e0000.pinctrl: Invalid fsl,pins or pins property in node /soc/bus@2000000/pinctrl@20e0000/pwm6grp
[    0.138821] imx6ul-pinctrl 20e0000.pinctrl: Invalid fsl,pins or pins property in node /soc/bus@2000000/pinctrl@20e0000/pwm7grp
[    0.138967] imx6ul-pinctrl 20e0000.pinctrl: no fsl,pins and pins property in node /soc/bus@2000000/pinctrl@20e0000/uart5grp
[    0.139072] imx6ul-pinctrl 20e0000.pinctrl: no fsl,pins and pins property in node /soc/bus@2000000/pinctrl@20e0000/usbhreggrp
[    0.139177] imx6ul-pinctrl 20e0000.pinctrl: no fsl,pins and pins property in node /soc/bus@2000000/pinctrl@20e0000/usdhc1grp
[    0.139323] imx6ul-pinctrl 20e0000.pinctrl: initialized IMX pinctrl driver
[    0.146516] imx6ul-pinctrl 2290000.iomuxc-snvs: Invalid fsl,pins or pins property in node /soc/bus@2200000/iomuxc-snvs@2290000/snvsusbcdetgrp
[    0.146728] imx6ul-pinctrl 2290000.iomuxc-snvs: initialized IMX pinctrl driver
[    0.174590] kprobes: kprobe jump-optimization is enabled. All kprobes are optimized if possible.
[    0.378190] SCSI subsystem initialized
[    0.378395] libata version 3.00 loaded.
[    0.379087] usbcore: registered new interface driver usbfs
[    0.379281] usbcore: registered new interface driver hub
[    0.379443] usbcore: registered new device driver usb
[    0.383188] i2c i2c-0: IMX I2C adapter registered
[    0.385462] i2c i2c-1: IMX I2C adapter registered
[    0.387134] mc: Linux media interface: v0.10
[    0.387384] videodev: Linux video capture interface: v2.00
[    0.387718] pps_core: LinuxPPS API ver. 1 registered
[    0.387776] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.387877] PTP clock support registered
[    0.389249] Advanced Linux Sound Architecture Driver Initialized.
[    0.391328] Bluetooth: Core ver 2.22
[    0.391520] NET: Registered PF_BLUETOOTH protocol family
[    0.391579] Bluetooth: HCI device and connection manager initialized
[    0.391648] Bluetooth: HCI socket layer initialized
[    0.391703] Bluetooth: L2CAP socket layer initialized
[    0.391792] Bluetooth: SCO socket layer initialized
[    0.394262] clocksource: Switched to clocksource mxc_timer1
[    0.395042] VFS: Disk quotas dquot_6.6.0
[    0.395250] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.423464] NET: Registered PF_INET protocol family
[    0.424159] IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.427888] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.428041] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.428128] TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    0.428276] TCP bind hash table entries: 4096 (order: 4, 65536 bytes, linear)
[    0.428586] TCP: Hash tables configured (established 4096 bind 4096)
[    0.428841] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.428971] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.429447] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.430956] RPC: Registered named UNIX socket transport module.
[    0.431051] RPC: Registered udp transport module.
[    0.431094] RPC: Registered tcp transport module.
[    0.431130] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.431189] PCI: CLS 0 bytes, default 64
[    0.433243] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 5 counters available
[    0.437615] Initialise system trusted keyrings
[    0.438988] workingset: timestamp_bits=30 max_order=17 bucket_order=0
[    0.453421] NFS: Registering the id_resolver key type
[    0.453615] Key type id_resolver registered
[    0.453666] Key type id_legacy registered
[    0.453954] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.454023] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.689293] Key type asymmetric registered
[    0.689388] Asymmetric key parser 'x509' registered
[    0.689744] io scheduler mq-deadline registered
[    0.689811] io scheduler kyber registered
[    0.707293] mxs-dma 1804000.dma-apbh: initialized
[    0.713941] 2018000.serial: ttymxc6 at MMIO 0x2018000 (irq = 199, base_baud = 5000000) is a IMX
[    0.716665] 2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 200, base_baud = 5000000) is a IMX
[    1.693701] printk: console [ttymxc0] enabled
[    1.701022] 21e8000.serial: ttymxc1 at MMIO 0x21e8000 (irq = 201, base_baud = 5000000) is a IMX
[    1.712402] 21ec000.serial: ttymxc2 at MMIO 0x21ec000 (irq = 202, base_baud = 5000000) is a IMX
[    1.723570] 21f0000.serial: ttymxc3 at MMIO 0x21f0000 (irq = 203, base_baud = 5000000) is a IMX
[    1.734733] 21f4000.serial: ttymxc4 at MMIO 0x21f4000 (irq = 204, base_baud = 5000000) is a IMX
[    1.745278] imx6ul-pinctrl 20e0000.pinctrl: pin MX6UL_PAD_CSI_MCLK already requested by 20e0000.pinctrl; cannot claim for 21fc000.serial
[    1.757761] imx6ul-pinctrl 20e0000.pinctrl: pin-117 (21fc000.serial) status -22
[    1.765205] imx6ul-pinctrl 20e0000.pinctrl: could not request pin 117 (MX6UL_PAD_CSI_MCLK) from group uart6grp  on device 20e0000.pinctrl
[    1.777682] imx-uart 21fc000.serial: Error applying setting, reverse things back
[    1.819873] imx_rngc 2284000.rng: Freescale RNGB registered (HW revision 2.129)
[    1.828052] random: crng init done
[    1.849839] Stack Depot allocating hash table of 32768 entries with kvcalloc
[    1.859718] [drm] Initialized mxsfb-drm 1.0.0 20160824 for 21c8000.lcdif on minor 0
[    1.914181] Console: switching to colour frame buffer device 80x30
[    1.942795] mxsfb 21c8000.lcdif: [drm] fb0: mxsfb-drmdrmfb frame buffer device
[    1.992554] brd: module loaded
[    2.017238] loop: module loaded
[    2.033773] nand: device found, Manufacturer ID: 0xc2, Chip ID: 0xdc
[    2.046635] nand: Macronix MX30LF4G28AC
[    2.056573] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 112
[    2.077679] Bad block table found at page 262080, version 0x01
[    2.090489] Bad block table found at page 262016, version 0x01
[    2.102369] nand_read_bbt: bad block at 0x000003bc0000
[    2.113345] nand_read_bbt: bad block at 0x00001be20000
[    2.124499] 5 fixed-partitions partitions found on MTD device gpmi-nand
[    2.136689] Creating 5 MTD partitions on "gpmi-nand":
[    2.147180] 0x000000000000-0x000000080000 : "mx6ull-bcb"
[    2.161260] 0x000000080000-0x000000200000 : "u-boot1"
[    2.175160] 0x000000200000-0x000000380000 : "u-boot2"
[    2.188584] 0x000000380000-0x000000400000 : "u-boot-env"
[    2.202133] 0x000000400000-0x000020000000 : "ubi"
[    2.220555] gpmi-nand 1806000.nand-controller: driver registered.
[    2.237676] CAN device driver interface
[    2.250667] pps pps0: new PPS source ptp0
[    2.267307] fec 20b4000.ethernet eth0: registered PHC device 0
[    2.283294] pps pps1: new PPS source ptp1
[    2.337071] fec 2188000.ethernet eth1: registered PHC device 1
[    2.350004] usb-conn-gpio connector: failed to get gpios
[    2.360364] usbcore: registered new interface driver usb-storage
[    2.374882] imx6ul-pinctrl 2290000.iomuxc-snvs: failed to get pin(70) name
[    2.386366] imx6ul-pinctrl 2290000.iomuxc-snvs: failed to get pin(71) name
[    2.397612] imx6ul-pinctrl 2290000.iomuxc-snvs: failed to get pin(21) name
[    2.408666] imx6ul-pinctrl 2290000.iomuxc-snvs: failed to get pin(20) name
[    2.419495] imx6ul-pinctrl 2290000.iomuxc-snvs: failed to get pin(19) name
[    2.430074] imx6ul-pinctrl 2290000.iomuxc-snvs: failed to get pin(18) name
[    2.440570] pinconfig core: failed to register map default (1): no group/pin given
[    2.463940] input: AD7879 Touchscreen as /devices/platform/soc/2100000.bus/21a4000.i2c/i2c-1/1-002c/input/input0
[    2.984293] i2c i2c-0: SCL is stuck low, exit recovery
[    3.494407] rtc-ds1307: probe of 0-0068 failed with error -110
[    3.507977] snvs_rtc 20cc000.snvs:snvs-rtc-lp: registered as rtc0
[    3.518578] snvs_rtc 20cc000.snvs:snvs-rtc-lp: setting system clock to 1970-01-01T00:00:00 UTC (0)
[    3.536635] i2c_dev: i2c /dev entries driver
[    3.547806] pxp 21cc000.pxp: Device registered as /dev/video0
[    3.563807] Bluetooth: HCI UART driver ver 2.3
[    3.572879] Bluetooth: HCI UART protocol H4 registered
[    3.582582] Bluetooth: HCI UART protocol LL registered
[    3.594854] sdhci: Secure Digital Host Controller Interface driver
[    3.605530] sdhci: Copyright(c) Pierre Ossman
[    3.614106] sdhci-pltfm: SDHCI platform and OF driver helper
[    3.627525] sdhci-esdhc-imx 2190000.mmc: Got CD GPIO
[    3.642775] sdhci-esdhc-imx 2194000.mmc: allocated mmc-pwrseq
[    3.654922] usbcore: registered new interface driver usbhid
[    3.664934] usbhid: USB HID core driver
[    3.705277] NET: Registered PF_INET6 protocol family
[    3.715069] mmc1: SDHCI controller on 2194000.mmc [2194000.mmc] using ADMA
[    3.727740] mmc0: SDHCI controller on 2190000.mmc [2190000.mmc] using ADMA
[    3.744562] Segment Routing with IPv6
[    3.753917] In-situ OAM (IOAM) with IPv6
[    3.762939] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    3.775382] NET: Registered PF_PACKET protocol family
[    3.785039] can: controller area network core
[    3.794005] NET: Registered PF_CAN protocol family
[    3.803374] can: raw protocol
[    3.810748] can: broadcast manager protocol
[    3.819420] can: netlink gateway - max_hops=1
[    3.828292] Key type dns_resolver registered
[    3.843346] Registering SWP/SWPB emulation handler
[    3.851069] Loading compiled-in X.509 certificates
[    3.887569] mmc1: new high speed SDIO card at address 0001
[    3.915462] imx_thermal 20c8000.anatop:tempmon: Industrial CPU temperature grade - max:105C critical:105C passive:95C
[    3.938370] ubi0: default fastmap pool size: 200
[    3.945366] ubi0: default fastmap WL pool size: 100
[    3.952421] ubi0: attaching mtd4
[    4.049372] ubi0: attached by fastmap
[    4.055335] ubi0: fastmap pool size: 200
[    4.061323] ubi0: fastmap WL pool size: 100
[    4.078247] ubi0: attached mtd4 (name "ubi", size 508 MiB)
[    4.086005] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[    4.095003] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[    4.103946] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[    4.113063] ubi0: good PEBs: 4058, bad PEBs: 6, corrupted PEBs: 0
[    4.121358] ubi0: user volume: 4, internal volumes: 1, max. volumes count: 128
[    4.132851] ubi0: max/mean erase counter: 279/141, WL threshold: 4096, image sequence number: 134907514
[    4.146787] ubi0: available PEBs: 0, total reserved PEBs: 4058, PEBs reserved for bad PEB handling: 74
[    4.160948] ubi0: background thread "ubi_bgt0d" started, PID 121
[    4.171205] input: gpio-keys as /devices/platform/gpio-keys/input/input1
[    4.187093] ALSA device list:
[    4.192679]   No soundcards found.
[    4.200084] UBIFS (ubi0:3): Mounting in unauthenticated mode
[    4.208935] UBIFS (ubi0:3): background thread "ubifs_bgt0_3" started, PID 122
[    4.232325] UBIFS (ubi0:3): recovery needed
[    4.448303] UBIFS (ubi0:3): recovery completed
[    4.463282] UBIFS (ubi0:3): UBIFS: mounted UBI device 0, volume 3, name "rootfs"
[    4.478303] UBIFS (ubi0:3): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[    4.496290] UBIFS (ubi0:3): FS size: 489746432 bytes (467 MiB, 3857 LEBs), max 3868 LEBs, journal size 9023488 bytes (8 MiB, 72 LEBs)
[    4.516899] UBIFS (ubi0:3): reserved for root: 0 bytes (0 KiB)
[    4.527106] UBIFS (ubi0:3): media format: w4/r0 (latest is w5/r0), UUID 0CA78A91-EFF1-4791-939F-1997240E0AFC, small LPT model
[    4.549785] VFS: Mounted root (ubifs filesystem) on device 0:15.
[    4.561326] devtmpfs: mounted
[    4.569064] Freeing unused kernel image (initmem) memory: 1024K
[    4.578423] Run /sbin/init as init process
[    4.585393]   with arguments:
[    4.585411]     /sbin/init
[    4.585422]   with environment:
[    4.585432]     HOME=/
[    4.585442]     TERM=linux
[    4.585451]     user_debug=30
[    4.821856] systemd[1]: System time before build time, advancing clock.
[    4.915754] systemd[1]: systemd 250.5+ running in system mode (+PAM -AUDIT -SELINUX -APPARMOR +IMA -SMACK +SECCOMP -GCRYPT -GNUTLS -OPENSSL +ACL +BLKID -CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP +LIBFDISK -PCRE2 -PWQUALITY -P11KIT -QRENCODE -BZIP2 -LZ4 -XZ -ZLIB +ZSTD -BPF_FRAMEWORK +XKBCOMMON +UTMP +SYSVINIT default-hierarchy=hybrid)
[    4.963542] systemd[1]: Detected architecture arm.
[    5.022358] systemd[1]: Hostname set to <colibri-imx6ull-14938795>.
[    5.444460] systemd[124]: /lib/systemd/system-generators/systemd-gpt-auto-generator failed with exit status 1.
[    6.321215] systemd[1]: Queued start job for default target Multi-User System.
[    6.447454] systemd[1]: Created slice Slice /system/getty.
[    6.512575] systemd[1]: Created slice Slice /system/modprobe.
[    6.576271] systemd[1]: Created slice Slice /system/serial-getty.
[    6.641671] systemd[1]: Created slice User and Session Slice.
[    6.700682] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[    6.769140] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    6.842777] systemd[1]: Reached target Host and Network Name Lookups.
[    6.897990] systemd[1]: Reached target Path Units.
[    6.948517] systemd[1]: Reached target Remote File Systems.
[    7.008239] systemd[1]: Reached target Slice Units.
[    7.058459] systemd[1]: Reached target Swaps.
[    7.199530] systemd[1]: Listening on RPCbind Server Activation Socket.
[    7.247186] systemd[1]: Reached target RPC Port Mapper.
[    7.294072] systemd[1]: Listening on Syslog Socket.
[    7.349726] systemd[1]: Listening on initctl Compatibility Named Pipe.
[    7.434397] systemd[1]: Journal Audit Socket was skipped because of a failed condition check (ConditionSecurity=audit).
[    7.453049] systemd[1]: Listening on Journal Socket (/dev/log).
[    7.501386] systemd[1]: Listening on Journal Socket.
[    7.553708] systemd[1]: Listening on Network Service Netlink Socket.
[    7.613771] systemd[1]: Listening on udev Control Socket.
[    7.670555] systemd[1]: Listening on udev Kernel Socket.
[    7.699155] systemd[1]: Listening on User Database Manager Socket.
[    7.751975] systemd[1]: Huge Pages File System was skipped because of a failed condition check (ConditionPathExists=/sys/kernel/mm/hugepages).
[    7.785739] systemd[1]: POSIX Message Queue File System was skipped because of a failed condition check (ConditionPathExists=/proc/sys/fs/mqueue).
[    7.837848] systemd[1]: Mounting Kernel Debug File System...
[    7.885482] systemd[1]: Kernel Trace File System was skipped because of a failed condition check (ConditionPathExists=/sys/kernel/tracing).
[    7.938008] systemd[1]: Mounting Temporary Directory /tmp...
[    8.047994] systemd[1]: Starting Create List of Static Device Nodes...
[    8.103634] systemd[1]: Starting Load Kernel Module configfs...
[    8.198347] systemd[1]: Starting Load Kernel Module drm...
[    8.308630] systemd[1]: Starting Load Kernel Module fuse...
[    8.368944] fuse: init (API version 7.37)
[    8.405736] systemd[1]: Starting RPC Bind...
[    8.425687] systemd[1]: File System Check on Root Device was skipped because of a failed condition check (ConditionPathIsReadWrite=!/).
[    8.485940] systemd[1]: Starting Journal Service...
[    8.528642] systemd[1]: Load Kernel Modules was skipped because all trigger condition checks failed.
[    8.605954] systemd[1]: Starting Generate network units from Kernel command line...
[    8.690037] systemd[1]: Starting Remount Root and Kernel File Systems...
[    8.756399] systemd[1]: Starting Apply Kernel Variables...
[    8.870743] systemd[1]: Starting Coldplug All udev Devices...
[    8.987325] systemd[1]: Started RPC Bind.
[    9.036519] systemd[1]: Mounted Kernel Debug File System.
[    9.095825] systemd[1]: Mounted Temporary Directory /tmp.
[    9.136184] systemd[1]: Finished Create List of Static Device Nodes.
[    9.204927] systemd[1]: modprobe@configfs.service: Deactivated successfully.
[    9.236264] systemd[1]: Finished Load Kernel Module configfs.
[    9.297354] systemd[1]: modprobe@drm.service: Deactivated successfully.
[    9.336423] systemd[1]: Finished Load Kernel Module drm.
[    9.395710] systemd[1]: Started Journal Service.
[    9.859694] systemd-journald[146]: Received client request to flush runtime journal.
[   12.673558] systemd-journald[146]: Oldest entry in /run/log/journal/d084f5178ca3430bb4ebef5a6bda68fd/system.journal is older than the configured file retention duration (1month), suggesting rotation.
[   12.844706] systemd-journald[146]: /run/log/journal/d084f5178ca3430bb4ebef5a6bda68fd/system.journal: Journal header limits reached or header out-of-date, rotating.
[   12.869091] mtdblock: MTD device 'mx6ull-bcb' is NAND, please consider using UBI block devices instead.
[   12.909295] mtdblock: MTD device 'u-boot1' is NAND, please consider using UBI block devices instead.
[   12.948593] mtdblock: MTD device 'u-boot2' is NAND, please consider using UBI block devices instead.
[   13.055370] mtdblock: MTD device 'u-boot-env' is NAND, please consider using UBI block devices instead.
[   13.135028] mtdblock: MTD device 'ubi' is NAND, please consider using UBI block devices instead.
[   14.567818] platform 2008000.spi: deferred probe pending
[   14.576506] platform 2184000.usb: deferred probe pending
[   14.584999] platform 2184200.usb: deferred probe pending
[   15.044909] imx-sdma 20ec000.dma-controller: loaded firmware 3.5
[   15.917684] Bluetooth: vendor=0x2df, device=0x9142, class=255, fn=2
[   16.353621] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[   16.807660] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[   21.341766] mcp251x spi0.0 can0: MCP2515 successfully initialized.
[   22.885824] Bluetooth: FW download over, size 623240 bytes
[   23.134736] btmrvl_sdio mmc1:0001:2: sdio device tree data not available
[   23.284526] mwifiex_sdio mmc1:0001:1: WLAN is not the winner! Skip FW dnld
[   23.734667] mwifiex_sdio mmc1:0001:1: WLAN FW is active
[   23.912086] mwifiex_sdio mmc1:0001:1: info: MWIFIEX VERSION: mwifiex 1.0 (16.68.1.p197)
[   23.926139] mwifiex_sdio mmc1:0001:1: driver_version = mwifiex 1.0 (16.68.1.p197)
[   25.022952] Micrel KSZ8041 20b4000.ethernet-1:02: attached PHY driver (mii_bus:phy_addr=20b4000.ethernet-1:02, irq=POLL)
[   25.174766] Generic PHY 20b4000.ethernet-1:00: attached PHY driver (mii_bus:phy_addr=20b4000.ethernet-1:00, irq=POLL)
[   25.404880] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   25.413166] Bluetooth: BNEP socket layer initialized
[   25.636342] Bluetooth: MGMT ver 1.22
[   72.007635] fec 2188000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx
[   72.016974] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[   72.083649] 8021q: 802.1Q VLAN Support v1.8
[   72.967626] fec 20b4000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[   72.976499] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 2530.487360] fec 20b4000.ethernet eth0: Link is Down
[ 2530.564564] fec 2188000.ethernet eth1: Link is Down
[ 2548.167606] fec 20b4000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[ 2548.176993] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 2548.245270] fec 2188000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx
[ 2548.253497] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready

Hi @facundo.n.r ,

Thanks for the detailed question!

It depends on your hardware, as you can see on the node above, the regulator uses the gpio = <&gpio_expander_21 4 GPIO_ACTIVE_HIGH>; pin to enable the hardware regulator, normally there are some GPIO designed for this function which helps when putting the module in suspend state, where you can remove the power for the entire circuit. If you are using the standard 3V3 rail on the hardware to power supply the FEC, then you can use this one.

The issue you are facing might be caused by having two FECs connected into one single MDIO, which is the only option for the Colibri iMX6ULL, below is the recommendation from the datasheet:

The Colibri iMX6ULL features a second Ethernet port. If this port is required, an additional PHY
needs to be implemented on the carrier board. Since the MDIO configuration port signals are
shared between the on-module and external Ethernet PHY, it is crucial to ensure that the two PHYs
are not strapped to the same address. The MDIO interface of the Ethernet PHY on the module uses
the address 00010. We recommend using the address 00001 for the external PHY.

Can you please comment on how exactly you set this address configuration on hardware? Also, if possible, please share the PHY schematics.

Also, there is this example using iMX6UL, which may help you with this issue, as can be seen, it uses registers 2 and 1 as also mentioned on our datasheet.

Best regards,
Daniel Morais

Hi @daniel_m.tx , thanks for your reply.

When I set register 1 for the external phy, the CPU has problems.

This line is the one I changed as mentioned in the datasheet.

		ethphy0: ethernet-phy@0 {
 			compatible = "ethernet-phy-ieee802.3-c22";
 			max-speed = <100>;
 			**reg = <1>;** 
 		};

And the Kernel return

image
.
.
.

With register 0, the external PHY is successfully registered. But it remains dependent on eth0.
Could it be a problem with the network manager ConnMan or systemd-networkd?

Hi @facundo.n.r ,

Thanks for the tests.

From what I saw it seems that the hardware configuration also sets the address, I’m not sure if changing the address by hardware will also solve the issue, what should matter here is having an address different from the one used inside the SoM.

I will check internally if there is something we can do to remove this dependence, but as mentioned before, it can be a limitation of having the MDIO shared.

I will let you know if I have any updates on this.

Best regards,
Daniel Morais

1 Like

Hi @facundo.n.r ,

Rechecking your device-tree, you are not configuring the reference clock inside the ethphy0 and ethphy1 nodes as shown in this example and this might be the issue. The correct configuration can be seen below:

	mdio {
		#address-cells = <1>;
		#size-cells = <0>;

		ethphy0: ethernet-phy@0 {
			compatible = "ethernet-phy-ieee802.3-c22";
 			max-speed = <100>;
			reg = <0>;
			micrel,led-mode = <1>;
			clocks = <&clks IMX6UL_CLK_ENET_REF>;
			clock-names = "rmii-ref";
		};

		ethphy1: ethernet-phy@2 {
			compatible = "ethernet-phy-ieee802.3-c22";
			max-speed = <100>;
			reg = <2>;
			micrel,led-mode = <1>;
			clocks = <&clks IMX6UL_CLK_ENET2_REF>;
			clock-names = "rmii-ref";
		};
	};

Also, by default, the pin MX6UL_PAD_GPIO1_IO04 is configured for the UART5 here, make sure that this is disabled to configure the new pin function.

Can you please do some tests and let us know the results?

Best regards,
Daniel Morais

Hi @daniel_m.tx,

Yes, the reason I didn’t add the reference clock is because there is already a clock configured within the reg_eth_phy node. Additionally, I created a new node, reg_eth1_phy, for the fec1.

	reg_eth_phy: regulator-eth-phy {
		compatible = "regulator-fixed-clock";
		regulator-boot-on;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-name = "+V3.3_ETH";
		regulator-type = "voltage";
		vin-supply = <&reg_module_3v3>;
		clocks = <&clks IMX6UL_CLK_ENET2_REF_125M>;
		startup-delay-us = <150000>;
	};


 	reg_eth_phy1: regulator-eth-phy1 {
		compatible = "regulator-fixed-clock";
		regulator-boot-on;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-name = "+V3.3_ETH1";
		regulator-type = "voltage";
		vin-supply = <&reg_module_3v3>;
		clocks = <&clks IMX6UL_CLK_ENET_REF>;
		startup-delay-us = <150000>;
	};	 

But now, I’m going to probe your change.

Regarding the pin MX6UL_PAD_GPIO1_IO04, it’s configured alone as REF_CLK1, which was removed from the uart5grp node.

@daniel_m.tx , I tested your recommended change, but the functionality remains the same. Eth1 depends on eth0.

Hi @facundo.n.r ,

Thanks for the tests!

Can you please send the entire dmesg log? Please also check for any changes in the logs after removing and inserting the ethernet again. Also please share your entire device tree.

Best regards,
Daniel Morais

Hi @daniel_m.tx , here is the device-tree file

device-tree.c (28.1 KB)

and the complete dmesg log.

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 6.1.65-6.5.0-devel+git.c6114c845984 (oe-user@oe-host) (arm-tdx-linux-gnueabi-gcc (GCC) 11.4.0, GNU ld (GNU Binutils) 2.38.20220708) #1 SMP Sun Dec  3 06:32:13 UTC 2023
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Toradex Colibri iMX6ULL 512MB on Colibri Evaluation Board V3
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 192 MiB at 0x94000000
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000080000000-0x000000009fffffff]
[    0.000000]   HighMem  empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x000000009fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x000000009fffffff]
[    0.000000] percpu: Embedded 12 pages/cpu s18836 r8192 d22124 u49152
[    0.000000] pcpu-alloc: s18836 r8192 d22124 u49152 alloc=12*4096
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 130048
[    0.000000] Kernel command line: user_debug=30 ubi.mtd=ubi root=ubi0:rootfs rw rootfstype=ubifs ubi.fm_autoconvert=1 console=tty1 console=ttymxc0,115200n8 consoleblank=0 video=mxsfb:640x480M-16@60
[    0.000000] Unknown kernel command line parameters "user_debug=30", will be passed to user space.
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 303488K/524288K available (11264K kernel code, 1238K rwdata, 3900K rodata, 1024K init, 437K bss, 24192K reserved, 196608K cma-reserved, 0K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] Switching to timer-based delay loop, resolution 41ns
[    0.000004] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.000045] clocksource: mxc_timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.003156] Console: colour dummy device 80x30
[    0.004148] printk: console [tty1] enabled
[    0.004238] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.004325] CPU: Testing write buffer coherency: ok
[    0.004456] pid_max: default: 32768 minimum: 301
[    0.004890] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.004988] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.007172] CPU0: update cpu_capacity 1024
[    0.007270] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.009855] cblist_init_generic: Setting adjustable number of callback queues.
[    0.009956] cblist_init_generic: Setting shift to 0 and lim to 1.
[    0.010573] Setting up static identity map for 0x80100000 - 0x80100078
[    0.011074] rcu: Hierarchical SRCU implementation.
[    0.011136] rcu:     Max phase no-delay instances is 1000.
[    0.014105] smp: Bringing up secondary CPUs ...
[    0.014189] smp: Brought up 1 node, 1 CPU
[    0.014242] SMP: Total of 1 processors activated (48.00 BogoMIPS).
[    0.014297] CPU: All CPU(s) started in SVC mode.
[    0.015561] devtmpfs: initialized
[    0.036986] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.037658] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.037782] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[    0.052437] pinctrl core: initialized pinctrl subsystem
[    0.056226] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.074026] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.077058] thermal_sys: Registered thermal governor 'step_wise'
[    0.077261] cpuidle: using governor menu
[    0.077596] CPU identified as i.MX6ULL, silicon rev 1.1
[    0.089011] platform soc: Fixed dependency cycle(s) with /soc/bus@2000000/gpc@20dc000
[    0.109345] platform 20e0000.pinctrl: Fixed dependency cycle(s) with /soc/bus@2000000/pinctrl@20e0000/gpio7grp
[    0.109501] platform 20e0000.pinctrl: Fixed dependency cycle(s) with /soc/bus@2000000/pinctrl@20e0000/gpio4grp
[    0.109609] platform 20e0000.pinctrl: Fixed dependency cycle(s) with /soc/bus@2000000/pinctrl@20e0000/gpio3grp
[    0.109704] platform 20e0000.pinctrl: Fixed dependency cycle(s) with /soc/bus@2000000/pinctrl@20e0000/gpio2grp
[    0.109798] platform 20e0000.pinctrl: Fixed dependency cycle(s) with /soc/bus@2000000/pinctrl@20e0000/gpio1grp
[    0.124603] platform 2290000.iomuxc-snvs: Fixed dependency cycle(s) with /soc/bus@2200000/iomuxc-snvs@2290000/snvsgpio1grp
[    0.126120] platform connector: Fixed dependency cycle(s) with /soc/bus@2100000/usb@2184000/port/endpoint
[    0.127394] platform panel-dpi: Fixed dependency cycle(s) with /soc/bus@2100000/lcdif@21c8000/port/endpoint
[    0.136454] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.136568] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.138672] imx6ul-pinctrl 20e0000.pinctrl: Invalid fsl,pins or pins property in node /soc/bus@2000000/pinctrl@20e0000/canintgrp
[    0.138915] imx6ul-pinctrl 20e0000.pinctrl: Invalid fsl,pins or pins property in node /soc/bus@2000000/pinctrl@20e0000/gpioblongrp
[    0.139089] imx6ul-pinctrl 20e0000.pinctrl: no fsl,pins and pins property in node /soc/bus@2000000/pinctrl@20e0000/gpio7grp
[    0.139220] imx6ul-pinctrl 20e0000.pinctrl: no fsl,pins and pins property in node /soc/bus@2000000/pinctrl@20e0000/i2c1grp
[    0.139331] imx6ul-pinctrl 20e0000.pinctrl: no fsl,pins and pins property in node /soc/bus@2000000/pinctrl@20e0000/i2c1-gpiogrp
[    0.139467] imx6ul-pinctrl 20e0000.pinctrl: Invalid fsl,pins or pins property in node /soc/bus@2000000/pinctrl@20e0000/pwm4grp
[    0.139572] imx6ul-pinctrl 20e0000.pinctrl: Invalid fsl,pins or pins property in node /soc/bus@2000000/pinctrl@20e0000/pwm5grp
[    0.139671] imx6ul-pinctrl 20e0000.pinctrl: Invalid fsl,pins or pins property in node /soc/bus@2000000/pinctrl@20e0000/pwm6grp
[    0.139768] imx6ul-pinctrl 20e0000.pinctrl: Invalid fsl,pins or pins property in node /soc/bus@2000000/pinctrl@20e0000/pwm7grp
[    0.139916] imx6ul-pinctrl 20e0000.pinctrl: no fsl,pins and pins property in node /soc/bus@2000000/pinctrl@20e0000/uart5grp
[    0.140022] imx6ul-pinctrl 20e0000.pinctrl: no fsl,pins and pins property in node /soc/bus@2000000/pinctrl@20e0000/usbhreggrp
[    0.140121] imx6ul-pinctrl 20e0000.pinctrl: no fsl,pins and pins property in node /soc/bus@2000000/pinctrl@20e0000/usdhc1grp
[    0.140274] imx6ul-pinctrl 20e0000.pinctrl: initialized IMX pinctrl driver
[    0.147541] imx6ul-pinctrl 2290000.iomuxc-snvs: Invalid fsl,pins or pins property in node /soc/bus@2200000/iomuxc-snvs@2290000/snvsusbcdetgrp
[    0.147753] imx6ul-pinctrl 2290000.iomuxc-snvs: initialized IMX pinctrl driver
[    0.175540] kprobes: kprobe jump-optimization is enabled. All kprobes are optimized if possible.
[    0.549032] SCSI subsystem initialized
[    0.549224] libata version 3.00 loaded.
[    0.549921] usbcore: registered new interface driver usbfs
[    0.550125] usbcore: registered new interface driver hub
[    0.550285] usbcore: registered new device driver usb
[    0.554020] i2c i2c-0: IMX I2C adapter registered
[    0.556293] i2c i2c-1: IMX I2C adapter registered
[    0.557982] mc: Linux media interface: v0.10
[    0.558230] videodev: Linux video capture interface: v2.00
[    0.558558] pps_core: LinuxPPS API ver. 1 registered
[    0.558614] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.558711] PTP clock support registered
[    0.560126] Advanced Linux Sound Architecture Driver Initialized.
[    0.562163] Bluetooth: Core ver 2.22
[    0.562356] NET: Registered PF_BLUETOOTH protocol family
[    0.562415] Bluetooth: HCI device and connection manager initialized
[    0.562486] Bluetooth: HCI socket layer initialized
[    0.562540] Bluetooth: L2CAP socket layer initialized
[    0.562625] Bluetooth: SCO socket layer initialized
[    0.565096] clocksource: Switched to clocksource mxc_timer1
[    0.565855] VFS: Disk quotas dquot_6.6.0
[    0.566061] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.594325] NET: Registered PF_INET protocol family
[    0.595017] IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.598730] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.598888] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.598973] TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    0.599121] TCP bind hash table entries: 4096 (order: 4, 65536 bytes, linear)
[    0.599433] TCP: Hash tables configured (established 4096 bind 4096)
[    0.599686] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.599817] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.600289] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.601816] RPC: Registered named UNIX socket transport module.
[    0.601912] RPC: Registered udp transport module.
[    0.601954] RPC: Registered tcp transport module.
[    0.601990] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.602049] PCI: CLS 0 bytes, default 64
[    0.604113] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 5 counters available
[    0.608504] Initialise system trusted keyrings
[    0.609915] workingset: timestamp_bits=30 max_order=17 bucket_order=0
[    0.624274] NFS: Registering the id_resolver key type
[    0.624492] Key type id_resolver registered
[    0.624544] Key type id_legacy registered
[    0.624838] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.624906] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.856553] Key type asymmetric registered
[    0.856646] Asymmetric key parser 'x509' registered
[    0.856997] io scheduler mq-deadline registered
[    0.857060] io scheduler kyber registered
[    0.874455] mxs-dma 1804000.dma-apbh: initialized
[    0.881412] 2018000.serial: ttymxc6 at MMIO 0x2018000 (irq = 199, base_baud = 5000000) is a IMX
[    0.883892] 2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 200, base_baud = 5000000) is a IMX
[    1.860958] printk: console [ttymxc0] enabled
[    1.868291] 21e8000.serial: ttymxc1 at MMIO 0x21e8000 (irq = 201, base_baud = 5000000) is a IMX
[    1.879654] 21ec000.serial: ttymxc2 at MMIO 0x21ec000 (irq = 202, base_baud = 5000000) is a IMX
[    1.890835] 21f0000.serial: ttymxc3 at MMIO 0x21f0000 (irq = 203, base_baud = 5000000) is a IMX
[    1.901897] 21f4000.serial: ttymxc4 at MMIO 0x21f4000 (irq = 204, base_baud = 5000000) is a IMX
[    1.912427] imx6ul-pinctrl 20e0000.pinctrl: pin MX6UL_PAD_CSI_MCLK already requested by 20e0000.pinctrl; cannot claim for 21fc000.serial
[    1.924937] imx6ul-pinctrl 20e0000.pinctrl: pin-117 (21fc000.serial) status -22
[    1.932381] imx6ul-pinctrl 20e0000.pinctrl: could not request pin 117 (MX6UL_PAD_CSI_MCLK) from group uart6grp  on device 20e0000.pinctrl
[    1.944862] imx-uart 21fc000.serial: Error applying setting, reverse things back
[    1.987095] imx_rngc 2284000.rng: Freescale RNGB registered (HW revision 2.129)
[    1.995816] random: crng init done
[    2.017213] Stack Depot allocating hash table of 32768 entries with kvcalloc
[    2.027057] [drm] Initialized mxsfb-drm 1.0.0 20160824 for 21c8000.lcdif on minor 0
[    2.081631] Console: switching to colour frame buffer device 80x30
[    2.110315] mxsfb 21c8000.lcdif: [drm] fb0: mxsfb-drmdrmfb frame buffer device
[    2.160151] brd: module loaded
[    2.184727] loop: module loaded
[    2.201427] nand: device found, Manufacturer ID: 0xc2, Chip ID: 0xdc
[    2.214230] nand: Macronix MX30LF4G28AC
[    2.224197] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 112
[    2.245276] Bad block table found at page 262080, version 0x01
[    2.257987] Bad block table found at page 262016, version 0x01
[    2.269858] nand_read_bbt: bad block at 0x000003bc0000
[    2.280830] nand_read_bbt: bad block at 0x00001be20000
[    2.291936] 5 fixed-partitions partitions found on MTD device gpmi-nand
[    2.304143] Creating 5 MTD partitions on "gpmi-nand":
[    2.314674] 0x000000000000-0x000000080000 : "mx6ull-bcb"
[    2.328819] 0x000000080000-0x000000200000 : "u-boot1"
[    2.342598] 0x000000200000-0x000000380000 : "u-boot2"
[    2.356222] 0x000000380000-0x000000400000 : "u-boot-env"
[    2.369773] 0x000000400000-0x000020000000 : "ubi"
[    2.388173] gpmi-nand 1806000.nand-controller: driver registered.
[    2.405353] CAN device driver interface
[    2.418348] pps pps0: new PPS source ptp0
[    2.434888] fec 20b4000.ethernet eth0: registered PHC device 0
[    2.450911] pps pps1: new PPS source ptp1
[    2.503991] fec 2188000.ethernet eth1: registered PHC device 1
[    2.517182] usb-conn-gpio connector: failed to get gpios
[    2.527447] usbcore: registered new interface driver usb-storage
[    2.542085] imx6ul-pinctrl 2290000.iomuxc-snvs: failed to get pin(70) name
[    2.553684] imx6ul-pinctrl 2290000.iomuxc-snvs: failed to get pin(71) name
[    2.564930] imx6ul-pinctrl 2290000.iomuxc-snvs: failed to get pin(21) name
[    2.576049] imx6ul-pinctrl 2290000.iomuxc-snvs: failed to get pin(20) name
[    2.586891] imx6ul-pinctrl 2290000.iomuxc-snvs: failed to get pin(19) name
[    2.597480] imx6ul-pinctrl 2290000.iomuxc-snvs: failed to get pin(18) name
[    2.607978] pinconfig core: failed to register map default (1): no group/pin given
[    2.631556] input: AD7879 Touchscreen as /devices/platform/soc/2100000.bus/21a4000.i2c/i2c-1/1-002c/input/input0
[    2.651709] i2c i2c-0: SCL is stuck low, exit recovery
[    2.661389] rtc-ds1307: probe of 0-0068 failed with error -11
[    2.674932] snvs_rtc 20cc000.snvs:snvs-rtc-lp: registered as rtc0
[    2.685618] snvs_rtc 20cc000.snvs:snvs-rtc-lp: setting system clock to 1970-01-01T00:00:00 UTC (0)
[    2.703613] i2c_dev: i2c /dev entries driver
[    2.714674] pxp 21cc000.pxp: Device registered as /dev/video0
[    2.730897] Bluetooth: HCI UART driver ver 2.3
[    2.739926] Bluetooth: HCI UART protocol H4 registered
[    2.749649] Bluetooth: HCI UART protocol LL registered
[    2.761788] sdhci: Secure Digital Host Controller Interface driver
[    2.772438] sdhci: Copyright(c) Pierre Ossman
[    2.781085] sdhci-pltfm: SDHCI platform and OF driver helper
[    2.794515] sdhci-esdhc-imx 2190000.mmc: Got CD GPIO
[    2.809806] sdhci-esdhc-imx 2194000.mmc: allocated mmc-pwrseq
[    2.821828] usbcore: registered new interface driver usbhid
[    2.831873] usbhid: USB HID core driver
[    2.872344] NET: Registered PF_INET6 protocol family
[    2.882167] mmc1: SDHCI controller on 2194000.mmc [2194000.mmc] using ADMA
[    2.896233] mmc0: SDHCI controller on 2190000.mmc [2190000.mmc] using ADMA
[    2.911385] Segment Routing with IPv6
[    2.920209] In-situ OAM (IOAM) with IPv6
[    2.930096] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    2.942992] NET: Registered PF_PACKET protocol family
[    2.952665] can: controller area network core
[    2.961652] NET: Registered PF_CAN protocol family
[    2.970970] can: raw protocol
[    2.978318] can: broadcast manager protocol
[    2.986974] can: netlink gateway - max_hops=1
[    2.995837] Key type dns_resolver registered
[    3.009569] Registering SWP/SWPB emulation handler
[    3.017312] Loading compiled-in X.509 certificates
[    3.065936] mmc1: new high speed SDIO card at address 0001
[    3.082056] imx_thermal 20c8000.anatop:tempmon: Industrial CPU temperature grade - max:105C critical:105C passive:95C
[    3.104810] ubi0: default fastmap pool size: 200
[    3.111787] ubi0: default fastmap WL pool size: 100
[    3.118887] ubi0: attaching mtd4
[    3.210982] ubi0: attached by fastmap
[    3.216921] ubi0: fastmap pool size: 200
[    3.222897] ubi0: fastmap WL pool size: 100
[    3.239769] ubi0: attached mtd4 (name "ubi", size 508 MiB)
[    3.247490] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[    3.256494] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[    3.265471] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[    3.274557] ubi0: good PEBs: 4058, bad PEBs: 6, corrupted PEBs: 0
[    3.282853] ubi0: user volume: 4, internal volumes: 1, max. volumes count: 128
[    3.294334] ubi0: max/mean erase counter: 299/151, WL threshold: 4096, image sequence number: 698914506
[    3.308272] ubi0: available PEBs: 0, total reserved PEBs: 4058, PEBs reserved for bad PEB handling: 74
[    3.322428] ubi0: background thread "ubi_bgt0d" started, PID 121
[    3.332634] input: gpio-keys as /devices/platform/gpio-keys/input/input1
[    3.347816] ALSA device list:
[    3.353391]   No soundcards found.
[    3.361048] UBIFS (ubi0:3): Mounting in unauthenticated mode
[    3.369895] UBIFS (ubi0:3): background thread "ubifs_bgt0_3" started, PID 122
[    3.393393] UBIFS (ubi0:3): recovery needed
[    3.648120] UBIFS (ubi0:3): recovery completed
[    3.656779] UBIFS (ubi0:3): UBIFS: mounted UBI device 0, volume 3, name "rootfs"
[    3.671725] UBIFS (ubi0:3): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[    3.689720] UBIFS (ubi0:3): FS size: 489746432 bytes (467 MiB, 3857 LEBs), max 3868 LEBs, journal size 9023488 bytes (8 MiB, 72 LEBs)
[    3.710325] UBIFS (ubi0:3): reserved for root: 0 bytes (0 KiB)
[    3.720526] UBIFS (ubi0:3): media format: w4/r0 (latest is w5/r0), UUID 8C9397B7-BB1B-4958-A0CA-583B951FA575, small LPT model
[    3.743739] VFS: Mounted root (ubifs filesystem) on device 0:15.
[    3.753953] devtmpfs: mounted
[    3.761667] Freeing unused kernel image (initmem) memory: 1024K
[    3.771014] Run /sbin/init as init process
[    3.777984]   with arguments:
[    3.778000]     /sbin/init
[    3.778012]   with environment:
[    3.778021]     HOME=/
[    3.778030]     TERM=linux
[    3.778039]     user_debug=30
[    4.012063] systemd[1]: System time before build time, advancing clock.
[    4.105617] systemd[1]: systemd 250.5+ running in system mode (+PAM -AUDIT -SELINUX -APPARMOR +IMA -SMACK +SECCOMP -GCRYPT -GNUTLS -OPENSSL +ACL +BLKID -CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP +LIBFDISK -PCRE2 -PWQUALITY -P11KIT -QRENCODE -BZIP2 -LZ4 -XZ -ZLIB +ZSTD -BPF_FRAMEWORK +XKBCOMMON +UTMP +SYSVINIT default-hierarchy=hybrid)
[    4.153437] systemd[1]: Detected architecture arm.
[    4.211042] systemd[1]: Hostname set to <colibri-imx6ull-14938795>.
[    4.627872] systemd[124]: /lib/systemd/system-generators/systemd-gpt-auto-generator failed with exit status 1.
[    5.500163] systemd[1]: Queued start job for default target Multi-User System.
[    5.578723] systemd[1]: Created slice Slice /system/getty.
[    5.637253] systemd[1]: Created slice Slice /system/modprobe.
[    5.696508] systemd[1]: Created slice Slice /system/serial-getty.
[    5.759349] systemd[1]: Created slice User and Session Slice.
[    5.811501] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[    5.879998] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    5.953033] systemd[1]: Reached target Host and Network Name Lookups.
[    6.008904] systemd[1]: Reached target Path Units.
[    6.059340] systemd[1]: Reached target Remote File Systems.
[    6.119113] systemd[1]: Reached target Slice Units.
[    6.169575] systemd[1]: Reached target Swaps.
[    6.310315] systemd[1]: Listening on RPCbind Server Activation Socket.
[    6.358009] systemd[1]: Reached target RPC Port Mapper.
[    6.404974] systemd[1]: Listening on Syslog Socket.
[    6.460669] systemd[1]: Listening on initctl Compatibility Named Pipe.
[    6.545393] systemd[1]: Journal Audit Socket was skipped because of a failed condition check (ConditionSecurity=audit).
[    6.564464] systemd[1]: Listening on Journal Socket (/dev/log).
[    6.612277] systemd[1]: Listening on Journal Socket.
[    6.664384] systemd[1]: Listening on Network Service Netlink Socket.
[    6.724710] systemd[1]: Listening on udev Control Socket.
[    6.781391] systemd[1]: Listening on udev Kernel Socket.
[    6.810290] systemd[1]: Listening on User Database Manager Socket.
[    6.860345] systemd[1]: Huge Pages File System was skipped because of a failed condition check (ConditionPathExists=/sys/kernel/mm/hugepages).
[    6.894208] systemd[1]: POSIX Message Queue File System was skipped because of a failed condition check (ConditionPathExists=/proc/sys/fs/mqueue).
[    6.948894] systemd[1]: Mounting Kernel Debug File System...
[    6.996315] systemd[1]: Kernel Trace File System was skipped because of a failed condition check (ConditionPathExists=/sys/kernel/tracing).
[    7.048884] systemd[1]: Mounting Temporary Directory /tmp...
[    7.158448] systemd[1]: Starting Create List of Static Device Nodes...
[    7.269506] systemd[1]: Starting Load Kernel Module configfs...
[    7.349552] systemd[1]: Starting Load Kernel Module drm...
[    7.459528] systemd[1]: Starting Load Kernel Module fuse...
[    7.519816] fuse: init (API version 7.37)
[    7.556593] systemd[1]: Starting RPC Bind...
[    7.576455] systemd[1]: File System Check on Root Device was skipped because of a failed condition check (ConditionPathIsReadWrite=!/).
[    7.636743] systemd[1]: Starting Journal Service...
[    7.679562] systemd[1]: Load Kernel Modules was skipped because all trigger condition checks failed.
[    7.756920] systemd[1]: Starting Generate network units from Kernel command line...
[    7.836963] systemd[1]: Starting Remount Root and Kernel File Systems...
[    7.917026] systemd[1]: Starting Apply Kernel Variables...
[    8.037458] systemd[1]: Starting Coldplug All udev Devices...
[    8.118402] systemd[1]: Started RPC Bind.
[    8.176800] systemd[1]: Mounted Kernel Debug File System.
[    8.226608] systemd[1]: Mounted Temporary Directory /tmp.
[    8.258677] systemd[1]: Finished Create List of Static Device Nodes.
[    8.325626] systemd[1]: modprobe@configfs.service: Deactivated successfully.
[    8.356920] systemd[1]: Finished Load Kernel Module configfs.
[    8.418123] systemd[1]: modprobe@drm.service: Deactivated successfully.
[    8.457136] systemd[1]: Finished Load Kernel Module drm.
[    8.516578] systemd[1]: Started Journal Service.
[    9.004395] systemd-journald[146]: Received client request to flush runtime journal.
[   11.899872] systemd-journald[146]: Oldest entry in /run/log/journal/391a0a2151be4a50be7d27e73f5ca9d2/system.journal is older than the configured file retention duration (1month), suggesting rotation.
[   12.026237] mtdblock: MTD device 'u-boot1' is NAND, please consider using UBI block devices instead.
[   12.057959] mtdblock: MTD device 'u-boot2' is NAND, please consider using UBI block devices instead.
[   12.100436] mtdblock: MTD device 'mx6ull-bcb' is NAND, please consider using UBI block devices instead.
[   12.142638] mtdblock: MTD device 'u-boot-env' is NAND, please consider using UBI block devices instead.
[   12.216216] systemd-journald[146]: /run/log/journal/391a0a2151be4a50be7d27e73f5ca9d2/system.journal: Journal header limits reached or header out-of-date, rotating.
[   12.445034] mtdblock: MTD device 'ubi' is NAND, please consider using UBI block devices instead.
[   13.928701] platform 2008000.spi: deferred probe pending
[   13.937395] platform 2184000.usb: deferred probe pending
[   13.945901] platform 2184200.usb: deferred probe pending
[   14.294053] imx-sdma 20ec000.dma-controller: loaded firmware 3.5
[   15.325005] Bluetooth: vendor=0x2df, device=0x9142, class=255, fn=2
[   15.824457] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[   16.173172] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[   20.451255] mcp251x spi0.0 can0: MCP2515 successfully initialized.
[   22.053886] Bluetooth: FW download over, size 623240 bytes
[   22.315615] btmrvl_sdio mmc1:0001:2: sdio device tree data not available
[   22.465440] mwifiex_sdio mmc1:0001:1: WLAN is not the winner! Skip FW dnld
[   23.005396] mwifiex_sdio mmc1:0001:1: WLAN FW is active
[   23.180387] mwifiex_sdio mmc1:0001:1: info: MWIFIEX VERSION: mwifiex 1.0 (16.68.1.p197)
[   23.194410] mwifiex_sdio mmc1:0001:1: driver_version = mwifiex 1.0 (16.68.1.p197)
[   24.072064] Micrel KSZ8041 20b4000.ethernet-1:02: attached PHY driver (mii_bus:phy_addr=20b4000.ethernet-1:02, irq=POLL)
[   24.190831] Generic PHY 20b4000.ethernet-1:00: attached PHY driver (mii_bus:phy_addr=20b4000.ethernet-1:00, irq=POLL)
[   24.442691] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   24.477938] Bluetooth: BNEP socket layer initialized
[   24.697375] Bluetooth: MGMT ver 1.22
[   26.168459] fec 20b4000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[   26.177867] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   26.228579] 8021q: 802.1Q VLAN Support v1.8
[   26.325591] fec 2188000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx
[   26.333718] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[   35.137952] mwifiex_sdio mmc1:0001:1: info: trying to associate to bssid 9c:a2:f4:b4:20:09
[   35.173556] mwifiex_sdio mmc1:0001:1: info: associated to bssid 9c:a2:f4:b4:20:09 successfully
[   35.234878] IPv6: ADDRCONF(NETDEV_CHANGE): mlan0: link becomes ready

When I disconnect and reconnect the ethernet1 cable, the log shows:

[ 1024.728100] fec 2188000.ethernet eth1: Link is Down
[ 1099.608466] fec 2188000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx
[ 1099.617340] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready

Best,
Facundo N Rodriguez

Also, I tried disconnecting and reconnecting ethernet0 (with ethernet1 connected), and interestingly, both interfaces go down.
I’m sharing the logs of this test with you.

[ 1173.288094] fec 20b4000.ethernet eth0: Link is Down
[ 1173.448152] fec 2188000.ethernet eth1: Link is Down
[ 1175.528461] fec 2188000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx
[ 1175.537349] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[ 1176.408600] fec 20b4000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[ 1176.417787] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

Hi @facundo.n.r ,

Thanks a lot for all the tests.

I’m looking internally at this issue with the team and will get back to you as soon as I get more information.

Best regards,
Daniel Morais

1 Like

Hi @facundo.n.r ,

I discussed this with the team and we expect that both ethernets should work independently without issues.

Can you please compile this tool into your system and execute some tests communicating with the PHY? You can find this example explaining how to execute.

Please try to communicate with the PHY after removing the first ethernet, if the PHY reports link down even with the cable connected, we would suspect some issue with the hardware.

Please let me know if you have any doubts.

Best regards,
Daniel Morais

Hi @facundo.n.r ,

Were you able to advance on this issue?

Please let me know if you have any doubts.

Best regards,
Daniel Morais

Hello, we have exact same problem when using second ethernet on custom imx6ull based board. Second interface is driven by LAN8720AI PHY.

Device tree describing both interfaces:

/* eth1 (external) interface */
&fec1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_enet1>;
	phy-mode = "rmii";
	phy-handle = <&ethphy0>;
	phy-supply = <&reg_eth_phy>;
	status = "okay";
};

/* eth0 (internal) interface */
&fec2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_enet2>;
	phy-mode = "rmii";
	phy-handle = <&ethphy1>;
	phy-supply = <&reg_eth_phy>;
	status = "okay";

	/delete-node/ mdio;

	mdio {
		#address-cells = <1>;
		#size-cells = <0>;

		ethphy0: ethernet-phy@0 {
			compatible = "ethernet-phy-ieee802.3-c22";
			max-speed = <100>;
			reg = <0>;
		};

		ethphy1: ethernet-phy@2 {
			compatible = "ethernet-phy-ieee802.3-c22";
			max-speed = <100>;
			reg = <2>;
		};
	};
};

		pinctrl_enet1: enet1-grp {
			fsl,pins = <
				MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN	0x1b0b0	/* SODIMM 178 */
				MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER	0x1b0b0	/* SODIMM 104 */
				MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00	0x1b0b0	/* SODIMM 55  */
				MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01	0x1b0b0	/* SODIMM 63  */
				MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN	0x1b0b0	/* SODIMM 30  */
				MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00	0x1b0b0	/* SODIMM 188 */
				MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01	0x1b0b0	/* SODIMM 73  */
				MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1	0x4001b031	/* SODIMM 67  */
			>;
		};

When cable is disconnected from internal eth0 we get following messages

[  324.643341] fec 20b4000.ethernet eth0: Link is Down
[  324.963297] fec 2188000.ethernet eth1: Link is Down

LEDs on eth0 turns off, LEDs on external eth1 stays up, and even shows network activity.

phytool report on eth0

./phytool print eth0/2
ieee-phy: id:0x00221513

   ieee-phy: reg:BMCR(0x00) val:0x3000
      flags:          -reset -loopback +aneg-enable -power-down -isolate -aneg-restart -collision-test
      speed:          100-half

   ieee-phy: reg:BMSR(0x01) val:0x7849
      capabilities:   -100-b4 +100-f +100-h +10-f +10-h -100-t2-f -100-t2-h
      flags:          -ext-status -aneg-complete -remote-fault +aneg-capable -link -jabber +ext-register

phytool report on eth1

./phytool print eth1/0
ieee-phy: id:0x00020011

   ieee-phy: reg:BMCR(0x00) val:0x3000
      flags:          -reset -loopback +aneg-enable -power-down -isolate -aneg-restart -collision-test
      speed:          100-half

   ieee-phy: reg:BMSR(0x01) val:0x7809
      capabilities:   -100-b4 +100-f +100-h +10-f +10-h -100-t2-f -100-t2-h
      flags:          -ext-status -aneg-complete -remote-fault +aneg-capable -link -jabber +ext-register

What could we try to get this resolved?

Hi @tomasvilda ,

Thanks for the detailed information.

On the phytool log you provided it seems that the IDs are correct, but the PHYs present the same status registrators on both. Can you force a different configuration on the second ethernet and execute the phytool again? Here is an example:

ethtool -s <interface> speed 10 duplex full autoneg off

Best regards,
Daniel Morais

I’ll provide this information tomorrow. One more thing I have found:

Each KSZ8041TL/FTL/MLL device is assigned a unique PHY address between 1 and 7 by its PHYAD[2:0] strapping pins. Also, every KSZ8041TL/FTL/MLL device supports the broadcast PHY address 0, as defined per the IEEE 802.3 Specification, which can be used to read/write to a single KSZ8041TL/FTL/MLL device, or write to multiple KSZ8041TL/FTL/MLL devices simultaneously.

So this means we can’t use 0 as address for LAN8720AI?