Yocto build fsl layer, with no kernel/linux custom modification.
Linux cubox-i 5.4.78+gc50d1fa1c355 #1
On boot, I get these traces:
[ 1.094109] imx-sdma 20ec000.sdma: Direct firmware load for imx/sdma/sdma-imx6q.bin failed with error -2
[ 1.094213] imx-sdma 20ec000.sdma: Falling back to sysfs fallback for: imx/sdma/sdma-imx6q.bin
The firmware file is definitely there
ls /lib/firmware/imx/sdma/ -ls
total 8
4 -rw-r--r-- 1 root root 2746 Mar 9 12:34 sdma-imx6q.bin
4 -rw-r--r-- 1 root root 2862 Mar 9 12:34 sdma-imx7d.bin
why would this be failing?
Does this mean SDMA then is not working after linux boots?
Solved! Go to Solution.
Hi dry,
this problem usually happens when the imx-sdma driver is linked into the kernel. At the time when the SDMA hardware is probed, the rootfs (with the SDMA firmware file) is not available yet.
Solution 1: Link also the SDMA firmware file into the kernel. This is problematic, as the SDMA firmware file has a proprietary license.
Solution 2: Build the imx-sdma driver as a kernel module. At the time when the module is loaded, also the SDMA firmware file will be available.
regards
Christian
Hi dry,
this problem usually happens when the imx-sdma driver is linked into the kernel. At the time when the SDMA hardware is probed, the rootfs (with the SDMA firmware file) is not available yet.
Solution 1: Link also the SDMA firmware file into the kernel. This is problematic, as the SDMA firmware file has a proprietary license.
Solution 2: Build the imx-sdma driver as a kernel module. At the time when the module is loaded, also the SDMA firmware file will be available.
regards
Christian
Hi @ceggers
> .. Solution 2: Build the imx-sdma driver as a kernel module. At the time when the
> module is loaded, also the SDMA firmware file will be available.
Makes perfect sense ! I had this morning same issue with a Bluetooth hci firmware loader, and, after I have changed hci from built-in to a module, the load error/warning went away.
I shall try see now if I can remove SDMA as built-in and change it to module - provided, that is actually supported by imx kernel. (Hopefully nothing wants it as early as possible)
Hi dry,
> I shall try see now if I can remove SDMA as built-in and change it to module - provided, that is actually
> supported by imx kernel. (Hopefully nothing wants it as early as possible)
Usually this is less a problem than one would expect. Most drivers (e.g. UART) request SDMA channels on device open, not on probe. So there is no need to build the UART driver also as a module. But maybe you will need to build other drivers as a module in this case.
I don't think this is an error message, Kernel boot to load firmware directly failed, so print out error log , then fall back to user helper to load firmware. you don't need to worry about this
@joanxie ,
What is this 'user helper' ? Where is it usually located, and how can I check it is / was invoked?