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

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.