imx6ull kernel 添加 sdma-imx6q.bin

imx6ull 板子启动报错如下:

[ 0.379733] imx-sdma 20ec000.sdma: Direct firmware load for imx/sdma/sdma-imx6q.bin failed with error -2
[ 0.379775] imx-sdma 20ec000.sdma: Falling back to sysfs fallback for: imx/sdma/sdma-imx6q.bin
[ 0.384908] mxs-dma 1804000.dma-apbh: initialized

imx6ull 固件添加

环境:imx6ull + linux-5.4.70

  1. 源码下载:

    git clone https://source.codeaurora.org/external/imx/linux-imx
    cd linux-imx
    git checkout -b imx_5.4.70_2.3.0 remotes/origin/imx_5.4.70_2.3.0
    
  2. 固件下载:

    方法一:

    git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
    cd linux-firmware/imx/sdma
    该目录下的 sdma-imx6q.bin 就是我们需要的文件
    

    方法二:

    打开如下网址

    https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/imx/sdma/sdma-imx6q.bin

    点击 plain 下载

    imx6ull kernel 添加 sdma-imx6q.bin_第1张图片

  3. 内核文档 https://www.kernel.org/doc/html/v5.4/driver-api/firmware/built-in-fw.html

    根据上面提到的配置项来配置即可

    • CONFIG_EXTRA_FIRMWARE
    • CONFIG_EXTRA_FIRMWARE_DIR

    参考博客:https://blog.csdn.net/daoshuti/article/details/107534657

    1. 在内核顶层目录添加 firmware 文件夹

    2. 查看 dts 文件中指定的固件名

      对应文件为 imx6ul.dtsi

      imx6ull kernel 添加 sdma-imx6q.bin_第2张图片

    3. 在 firmware 目录建立 imx/sdma/ 文件夹,并放入 sdma-imx6q.bin

    4. 使用 make menuconfig 配置 CONFIG_EXTRA_FIRMWARE 和 CONFIG_EXTRA_FIRMWARE_DIR

      菜单目录如下:

      imx6ull kernel 添加 sdma-imx6q.bin_第3张图片

      填写内容如下:

      imx6ull kernel 添加 sdma-imx6q.bin_第4张图片

      注意:固件名字为 imx/sdma/sdma-imx6q.bin

      ​ 目录为 firmware

    5. 编译内核,启动可以发现 sdma-imx6q.bin 已加载,版本为 3.5;

    6. 可以执行 make savedefconfig;会在 kernel 顶层目录生成 defconfig 文件;可以对比添加到你的 defconfig 文件中去即可;

你可能感兴趣的:(一时兴起,linux,固件)