I am attempting to build and boot a PREEMPT_RT real-time Linux image for the Toradex Verdin iMX95 on the Verdin EVK V1.3 using the tdx-xwayland-rt distro with kernel linux-toradex 6.6.119-rt67. We successfully built the image using Yocto Scarthgap with DISTRO = "tdx-xwayland-rt" and flashed it using the UUU tool. However, I encountered several issues during boot that I have been working through, and I would appreciate guidance from the community.
Issue 1 — Wrong DTB Name at Boot
After flashing the RT image, U-Boot failed to load the device tree, reporting Failed to load 'imx95-19x19-verdin-adv7535-ap1302.dtb'. This DTB does not exist in the RT kernel build. The RT kernel produces DTBs with different naming conventions such as imx95-verdin-wifi-dev.dtb. I worked around this by manually setting fdtfile=imx95-verdin-wifi-dev.dtb in the U-Boot environment.
Issue 2 — vf610_gpio Kernel Panic
After resolving the DTB issue, the kernel panicked during boot with an Asynchronous SError Interrupt at vf610_gpio_probe. The call trace clearly showed the vf610 GPIO driver probing hardware that is not present or accessible on the Verdin iMX95, causing a fatal hardware fault. I resolved this by adding a kernel config fragment to disable the driver with CONFIG_GPIO_VF610=n. I would like to know why this driver is enabled by default in the RT kernel configuration for verdin-imx95, and whether this should be disabled upstream.
Issue 3 — Silent Boot Hang After UART Initialization
After fixing the GPIO panic, the kernel appeared to hang silently after the message 42690000.serial: ttyLP0 at MMIO 0x42690010 is a FSL_LPUART. There was no further output and the board was unresponsive. I discovered that the kernel was actually crashing after this point, but the crash output was invisible because it occurred during the console switch from earlycon to the full ttyLP0 driver. Adding keep_bootcon to the kernel command line revealed the hidden crash output described in Issue 4 below.
Issue 4 — lpuart2 Synchronous External Abort
With keep_bootcon enabled, I discovered the actual crash. The lpuart2 driver (serial@44390000) is enabled in imx95-verdin-dev.dtsi with status = "okay", but its pinctrl configuration fails with scmi-pinctrl: pin_config_set op failed for pin 118, followed immediately by fsl-lpuart 44390000.serial: Error applying setting, reverse things back and a fatal Internal error: synchronous external abort: 0000000096000010 at lpuart_probe+0x558/0x630. I am currently attempting to fix this by patching imx95-verdin-dev.dtsi to set lpuart2 to status = "disabled", but we would like to know if this is a known issue and what the correct fix is.
Issue 5 — fsl_enetc_mdio EPROBE_DEFER Warning
Throughout the boot process, I consistently see the warning fsl_enetc_mdio 0003:01:00.0: Cannot get IERB init status: -517. The error code -517 corresponds to EPROBE_DEFER, indicating the MDIO driver is waiting for the IERB driver which is not available. I added CONFIG_FSL_ENETC_IERB=y to our kernel config fragment which enabled the driver, but the warning persists. We would like to know if this is expected behavior or if there is a missing dependency in the default RT kernel configuration.
In summary, We would appreciate answers to the following questions: Is tdx-xwayland-rt officially tested and supported on verdin-imx95 with kernel 6.6.119-rt67? Are there known patches or workarounds needed for the issues described above? Specifically, should CONFIG_GPIO_VF610 be disabled by default for this machine? Is the lpuart2 pinctrl failure a known issue and what is the recommended fix?