Help Needed with Verdin iMX8M Plus - Boot Issues After Custom Kernel Compilation

Hey guys… :wave:

I have been working with the Verdin iMX8M Plus module on the Dahlia carrier board for a project, and I’m facing an issue after compiling a custom Linux kernel. I followed the official Toradex documentation for building the kernel from source, and everything seemed to go smoothly during the compilation process. However, when I try to boot the module with the new kernel, it gets stuck at the “Starting kernel …” message and doesn’t proceed further.

I’ve checked the kernel config, and I’m pretty sure I included all the necessary drivers, especially for the display and networking, but I’m still not sure if I might have missed something. I’ve also tried different U-Boot settings, but it hasn’t made any difference. The same hardware works fine with the default Toradex image.

I also check this: https://community.toradex.com/t/verdin-imx8mp-not-working-on-a-custom-made-carrier-boardsnowflake But I have not found any solution. Could anyone guide me about this? Could anyone point me in the right direction for troubleshooting this? Are there specific kernel settings or patches required for the Verdin iMX8M Plus that might not be obvious from the standard documentation?

Thanks in advance!

Respected community member! :smiling_face_with_three_hearts:

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

Did you like my answer?

:+1: :-1:


It sounds like you’ve done a lot of the right steps already, but there are a few additional things you can check and try to resolve the boot issue with your custom kernel on the Verdin iMX8M Plus module.

  1. Check Serial Console Output: Ensure you are capturing the full serial console output during boot. Sometimes, additional messages before “Starting kernel …” can provide clues about what might be going wrong.

  2. Device Tree: Verify that the device tree blob (DTB) you are using is correctly configured for your hardware setup. The device tree must match the hardware configuration of your Verdin iMX8M Plus and the Dahlia carrier board.

  3. Kernel Configuration: Double-check your kernel configuration. Ensure that all necessary drivers for your hardware are enabled, especially those related to the SoC, memory, and storage. You can compare your custom kernel config with the default Toradex kernel config to see if there are any significant differences.

  4. U-Boot Environment: Ensure that the U-Boot environment variables are correctly set to load the new kernel and device tree. You might want to reset the U-Boot environment to default and then set the necessary variables again.

  5. Boot Container: For the i.MX 8M Plus, ensure that the boot container is correctly assembled and includes all necessary firmware components. Refer to the specific steps for building the boot container as mentioned in the context.

  6. Kernel Logs: If the kernel starts but hangs, you might not see the logs on the serial console. Try enabling early printk in the kernel configuration to get more debug information early in the boot process. Add earlyprintk to the kernel command line in U-Boot.

  7. Debugging with JTAG: If you have access to a JTAG debugger, you can use it to get more insights into where the kernel is getting stuck.

  8. Community and Support: Since you have already checked the Toradex community forums, you might also want to reach out to Toradex technical support directly for more specific guidance. They can provide more detailed assistance based on your exact setup and configuration.

Here are some specific steps you can follow to enable early printk:

  1. Enable Early Printk in Kernel Config:

    • Run make menuconfig in your kernel source directory.
    • Navigate to Kernel hackingKernel low-level debugging functions and enable Early printk.
  2. Set Kernel Command Line in U-Boot:

    • Stop the U-Boot autoboot process by pressing any key.
    • Set the kernel command line to include earlyprintk:
      setenv bootargs console=ttymxc0,115200 earlyprintk
      saveenv
      boot
      

By following these steps, you should be able to gather more information about where the boot process is failing and take appropriate actions to resolve the issue. If you continue to face issues, providing detailed logs and configuration files to the Toradex support team can help them assist you more effectively.

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

Verdin iMX8M Plus: Enabling ecspi1 in u-boot.

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

Did you like my answer?

:+1: :-1:


It sounds like you’ve done a lot of the right steps already, but there are a few additional things you can check and try to resolve the boot issue with your custom kernel on the Verdin iMX8M Plus module.

  1. Check Serial Console Output: Ensure you are capturing the full serial console output during boot. Sometimes, additional messages before “Starting kernel …” can provide clues about what might be going wrong.

  2. Device Tree: Verify that the device tree blob (DTB) you are using is correctly configured for your hardware setup. The device tree must match the hardware configuration of your Verdin iMX8M Plus and the Dahlia carrier board.

  3. Kernel Configuration: Double-check your kernel configuration. Ensure that all necessary drivers for your hardware are enabled, especially those related to the SoC, memory, and storage. You can compare your custom kernel config with the default Toradex kernel config to see if there are any significant differences.

  4. U-Boot Environment: Ensure that the U-Boot environment variables are correctly set to load the new kernel and device tree. You might want to reset the U-Boot environment to default and then set the necessary variables again.

  5. Boot Container: For the i.MX 8M Plus, ensure that the boot container is correctly assembled and includes all necessary firmware components. Refer to the specific steps for building the boot container as mentioned in the context.

  6. Kernel Logs: If the kernel starts but hangs, you might not see the logs on the serial console. Try enabling early printk in the kernel configuration to get more debug information early in the boot process. Add earlyprintk to the kernel command line in U-Boot.

  7. Debugging with JTAG: If you have access to a JTAG debugger, you can use it to get more insights into where the kernel is getting stuck.

  8. Community and Support: Since you have already checked the Toradex community forums, you might also want to reach out to Toradex technical support directly for more specific guidance. They can provide more detailed assistance based on your exact setup and configuration.

Here are some specific steps you can follow to enable early printk:

  1. Enable Early Printk in Kernel Config:

    • Run make menuconfig in your kernel source directory.
    • Navigate to Kernel hackingKernel low-level debugging functions and enable Early printk.
  2. Set Kernel Command Line in U-Boot:

    • Stop the U-Boot autoboot process by pressing any key.
    • Set the kernel command line to include earlyprintk:
      setenv bootargs console=ttymxc0,115200 earlyprintk
      saveenv
      boot
      

By following these steps, you should be able to gather more information about where the boot process is failing and take appropriate actions to resolve the issue. If you continue to face issues, providing detailed logs and configuration files to the Toradex support team can help them assist you more effectively.

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

Torizon OS kernel panic when running M7 application on Verdin IMX8M Plus.

Hi, @wecoy71025!

I apologize for the delayed response.

Could you send me the exact steps that you are following, and detail how you are doing them?

Best regards.
Lucas Azeituno.