IMX8MM EVK kernel hang on imx-yocto-L5.4.24_2.1.0

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IMX8MM EVK kernel hang on imx-yocto-L5.4.24_2.1.0

Jump to solution
4,949 Views
liangyan
Contributor II

hi NXP

我在使用 imx-yocto-L5.4.24_2.1.0时,内核无法启动:

[ 1.336284] imx-sdma 302c0000.dma-controller: Direct firmware load for imx/sdma/sdma-imx7d.bin failed with error -2
[ 1.343944] imx-sdma 302c0000.dma-controller: Falling back to sysfs fallback for: imx/sdma/sdma-imx7d.bin
[ 1.367113] mxs-dma 33000000.dma-controller: initialized
[ 1.370890] Bus freq driver module loaded

但是在imx-yocto-L4.14.98_2.0.0_ga.zip就不存在这个问题.

0 Kudos
1 Solution
4,937 Views
ceggers
Contributor V

Hi liangyan,

this problem usually happens when the imx-sdma driver is built directly into the kernel. At the time when the driver is initialized, the root filesystem with the SDMA firmware binary is not yet available.

The best solution is normally to build the i.MX SDMA driver as a kernel module. At the time when the kernel module is loaded, the firmware file is also available. Probably you should load the imx-sdma.ko module early in your boot sequence, so that the SDMA is available at the time other drivers require it.

regards
Christian

View solution in original post

8 Replies
1,130 Views
araja
Contributor III

Posting the above from Chinese to English.

I have done experiments and verified that it is normal for IMX8MM to boot from linux-4.14.98 to linux-4.19.35. Starting from linux-5.4.3, it cannot be started on IMX8MM. In this kernel version, SDMA is The configuration options compiled into the kernel are the same, but starting from linux-5.4.3, the startup sequence has changed, causing SDMA to be started in advance, causing the kernel to hang.

0 Kudos
4,938 Views
ceggers
Contributor V

Hi liangyan,

this problem usually happens when the imx-sdma driver is built directly into the kernel. At the time when the driver is initialized, the root filesystem with the SDMA firmware binary is not yet available.

The best solution is normally to build the i.MX SDMA driver as a kernel module. At the time when the kernel module is loaded, the firmware file is also available. Probably you should load the imx-sdma.ko module early in your boot sequence, so that the SDMA is available at the time other drivers require it.

regards
Christian

1,358 Views
ramyashree1
Contributor I

Hi @ceggers 

How did you build this driver as kernel module ? Can you please tell so that i can cross check it

0 Kudos
1,351 Views
ceggers1
Contributor IV
Search for CONFIG_IMX_SDMA in your kernel configuration. Set this option to 'm' instead of 'y' and recompile your kernel.

regards,
Christian
0 Kudos
1,344 Views
ramyashree1
Contributor I

1.336284] imx-sdma 302c0000.dma-controller: Direct firmware load for imx/sdma/sdma-imx7d.bin failed with error -2
[ 1.343944] imx-sdma 302c0000.dma-controller: Falling back to sysfs fallback for: imx/sdma/sdma-imx7d.bin

im getting this error , please help me out with solution

working on imx8mm board , is it fine firmware file is imx7d.bin file can be used ? or is there any particular firmware file for imx8mm

0 Kudos
1,336 Views
ceggers1
Contributor IV
It looks like the kernel build didn't take your configuration changes. Please try a full kernel rebuild. If you use Yocto Linux, please also check the value of CONFIG_SDMA in the deployed kernel config file.

The imx7.bin is fine for i.MX8
0 Kudos
1,345 Views
ramyashree1
Contributor I

I did that , but I'm not able to see .ko file

regards,

ramya

0 Kudos
4,930 Views
liangyan
Contributor II

hi NXP

我做实验验证了,linux-4.14.98 到linux-4.19.35内核IMX8MM启动是正常的,从linux-5.4.3开始,就没法在IMX8MM上启动了,SDMA在这个内核版本中,都是编译到内核中的,配置选项是相同的,但是从linux-5.4.3开始,启动顺序发生了变化,导致SDMA提前被启动,导致内核hang。

0 Kudos