Colibri-iMX6DL: Switch to Kernel 5.15

Hi,

we are currently using Yocto-based image based on Linux-BSP 5.3 and a custom Kernel 4.9.87 with rt-patches (based on Kernel toradex_4.9-1.0.x-imx) on custom hardware with Colibri-iMX6DL 512MB IT (V1.1Y).

The plan is to switch to Kernel 5.15.x (based on toradex_5.15-2.2.x-imx) because of some drivers, that are only fully supported in the newer Kernel.

So it possible to change only the Kernel for our Yocto-build or what steps are needed to get the 5.15-Kernel running?

At our first tests we see for example problems with ethernet where the FEC is detected but no link up is possible (after boot no ifup, no link/traffic-LEDs active)

Boot-Log:

[...]
[    2.742298] fec 2188000.ethernet eth0: registered PHC device 0
[    5.928184] Micrel KSZ8041 2188000.ethernet-1:00: attached PHY driver (mii_bus:phy_addr=2188000.ethernet-1:00, irq=POLL)
[...]

Working device-tree entries from Kernel 4.9:

&fec {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_enet>;
	phy-mode = "rmii";
	status = "okay";
};

enet {
	pinctrl_enet: enetgrp { /* RMII */
		fsl,pins = <
			MX6QDL_PAD_ENET_MDC__ENET_MDC	0x1b0b0
			MX6QDL_PAD_ENET_MDIO__ENET_MDIO	0x1b0b0
			MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0	0x1b0b0
			MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1	0x1b0b0
			MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER	0x1b0b0
			MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN	0x1b0b0
			MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0	0x1b0b0
			MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1	0x1b0b0
			MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN	0x1b0b0
			MX6QDL_PAD_GPIO_16__ENET_REF_CLK	((1<<30) | 0x1b0b0)
		>;
	};
};

Regards,
Markus

Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


To switch from Kernel 4.9.87 to Kernel 5.15.x on your Colibri-iMX6DL 512MB IT, you need to consider several steps beyond just changing the kernel in your Yocto build. Here are the recommended steps:

  1. Device Tree Adjustments: Review and potentially modify your device tree entries. The device tree configuration from Kernel 4.9 may not be directly compatible with Kernel 5.15. Pay special attention to the pinctrl settings and PHY configurations. Ensure that the phy-mode and other settings are correctly defined for the new kernel.

  2. Driver Compatibility: Verify that all necessary drivers are included and configured correctly in your Yocto build. The newer kernel may have different driver requirements or configurations.

  3. Ethernet Configuration: Since you are experiencing issues with the Ethernet link, ensure that the PHY driver is correctly attached and configured. The boot log indicates that the PHY driver is attached, but there might be a misconfiguration in the device tree or kernel settings that prevents the link from coming up.

  4. Testing and Debugging: After making the necessary changes, test the hardware functionality thoroughly. Use tools like ethtool to diagnose and debug Ethernet issues. Check for any additional kernel messages that might indicate what is going wrong.

  5. Consult Documentation: Refer to Toradex documentation for any specific instructions or patches needed for the transition to Kernel 5.15.x. There might be known issues or additional steps documented that are specific to your hardware and kernel version.

By following these steps, you should be able to address the compatibility issues and successfully transition to Kernel 5.15.x.

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

Help to integrate a custom kernel into a Torizon Core Image.

Hello @MarkusN,

I would advise against using different kernel versions from the ones provided in the BSP you are using.
We do extensive testing to ensure compatibility between the components of our BSPs.

It is also worth mentioning that we never supported the Colibri iMX6 on the toradex_5.15-2.2.x-imx kernel branch.
This branch is intended for BSP 6, which only supported the Colibri iMX6 in a mainline (upstream) kernel.

As you want to use a newer kernel, I would recommend that you use the newly released BSP 7, which has Kernel 6.6 (mainline) for the Colibri iMX6.
The instructions on how to build it are very similar to the documentation for BSP6, you just need to initialize the build environment with the following command:

repo init -u git://git.toradex.com/toradex-manifest.git -b refs/tags/7.0.0 -m tdxref/default.xml
repo sync

Once the build environment is initialized, you can add your custom layers and customizations on top of it.

Best Regards,
Bruno

Hello Bruno!

Thank you for your answer and explanation. We discussed your advises and we are going to rebuild our image so that we use newer BSP versions. It is too expensive to keep the old versions alive.

Best regards,
Markus

1 Like

Hello @MarkusN,

Thanks for the update.

Best Regards,
Bruno