Hi all,
on a imx6ul based custom board, i moved from a 4.9.x_1.0.0 kernel to a 4.14.113+imx-1.0.0.
As it is done in 4.9., from the included ./firmware/Makefile, i managed to have sdma-imx6q.bin to be built-in also for the 4.14.
Btw, at kernel boot, i get
imx-sdma 20ec000.sdma: external firmware not found, using ROM firmware
I am 100% sure SDMA fw binary is built in, just checked the zImage binary. The question is, why the fw, even if built-in in the same way, is loaded in kernel 4.9 and not in 4.14 ?
Regards
Angelo
You can add a binary blob (firmware) by specifying the path in menuconfig, here the diff:
+CONFIG_EXTRA_FIRMWARE="imx/sdma/sdma-imx6q.bin"
+CONFIG_EXTRA_FIRMWARE_DIR="/git/linux-firmware"
I cloned git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git to /git/linux-firmware.
BTW: I use now kernel v4.19
Hi Angelo,
I also have the same problem you describe.
I used the tool meld to compare this two version of Makefile under the firmware folder, I also turn on the config file but I have no idea there is a lot of unexpected error message when I build the zImage.
The compiler toolchain what I used is "gcc-arm-none-eabi-8-2018-q4-major"
Thank you so much.
the image files of SDMA (e.g. sdma-imx6q.bin) available in the directory firmware/imx/sdma for 4.1 and 4.9 kernels. For 4.14 kernel, the sdma firmware is provided with the firmware-imx package and not in the kernel source tree.
for example, "bitbake core-image-full-cmdline" build the rootfs may not include the firmware-imx. So, you can add
CORE_IMAGE_EXTRA_INSTALL += " firmware-imx-sdma" in local.conf.
Hi Thanks,
i solved mi issue. Mainly, on 4.9 there was a different Makefile for the firmware folder, that was creating the sdma-imx6q.bin and build it in. I replicated same makefile part in 4.14, all is working fine now.
Hi Angelo,
I've the same problem you describe.I will be grateful if you could indicate where is located the makefile you speak.about.
Christophe
Hi,
bsp imx 4.9 was including a folder "firmarwe".
firmware/Makefile is where sdma-imx6q.bin get built in.
Mainly the makefile checks if SDMA driver is selected, then it builds into kernel the sdma-imx6q.bin.
You can verify if it's built in just by a hex editor in the kernel binary, you will find an ASCII SDMA mark signature before the firmware.
Regards
angelo
Hi Angelo,
Thanks to you, it works fine.
Rgds,
Christophe