• IMX6ULL使用NXP官方mfgtool2下载方法及错误解决


    1 加入镜像文件

            将自编译的镜像名称改为如下

    u-boot-imx6ull14x14evk_nand.imx
    zImage
    zImage-imx6ull-14x14-evk-gpmi-weim.dtb
    rootfs_nogpu.tar.bz2

            Profiles\Linux\OS Firmware\files目录下替换表格内的文件

            Profiles\Linux\OS Firmware\firmware目录下只替换u-boot-imx6ull14x14evk_nand.imx

    2 执行下载

            点击:mfgtool2-yocto-mx-evk-nand.vbs

            下载分两个阶段

            第一阶段:下载firmware目录下的uboot、内核、设备树到开发板的DRAM中

            第二阶段:跳转到DRAM中内核执行,将files目录下的uboot、内核、设备树、文件系统下载到nand flash中

            存在两种错误情况

            1)将firmware目录下的uboot、内核、设备树全部替换成自编译的镜像,由于自编译的内核镜像可能未开启USB大容量存储功能,导致第二阶段无法执行,串口输出UTP: Waiting for device to appear后下载即停止了。这种情况下解决方法就是重新配置自己的内核并编译,配置如下
     

    1. -> Device Drivers
    2. -> USB support (USB_SUPPORT [=y])
    3. -> Support for Host-side USB (USB [=y])
    4. -> General setup
    5. ->Initial RAM filesystem and RAM disk (initramfs/initrd) support
    6. -> Device Drivers
    7. -> USB support (USB_SUPPORT [=y])
    8. -> USB Gadget Support (USB_GADGET [=y])
    9. ->
    10. USB Gadget Drivers ( [=m])
    11. ->[X]Mass Storage Gadget (USB_MASS_STORAGE [=m]
    12. ->
    13. UTP over Storage Gadget

            2)不替换firmware目录下文件,也即在第一阶段下载到DRAM中的uboot、内核、设备树全部是NXP原厂的,NXP原厂的内核开启USB大容量存储功能,可以完成第二阶段的下载。下载完成后,设置开发板为从NAND启动,重启开发板,uboot可运行,但内核和设备树均读取不了。这里的错误原因是NXP原厂的uboot对nand的分区和自编译的uboot对nand的分区不同。

            NXP原厂的uboot对nand的分区

            "boot" 64M        "kernel" 16M        "dtb" 16M        "rootfs" 剩余

            而自编译的uboot对nand的分区为

            "boot" 64M        "kernel" 32M        "dtb" 16M        "rootfs" 剩余

            NXP原厂的uboot对nand的分区是files目录下文件写入nand flash的地址,自编译的uboot对nand的分区是开发板从nand启动时从nand flash读取镜像的地址,两个地址分布不一样。uboot都是在nand的起始地址,所以开发板从nand启动时uboot可以运行,但是kernel和设备树地址不同,显然开发板从nand启动时,按自编译的uboot对nand的分区,无法读取内核和设备树。

            解决方法就是firmware目录下uboot替换成自编译的u-boot-imx6ull14x14evk_nand.imx,或者更改自编译的uboot中nand分区,改为和nxp原厂分区一样。

  • 相关阅读:
    Python自动化之Excel利器openpyxl
    python 注解, 装饰器@ 详解
    ReentrantLock源码解析
    Vue.js:渐进式JavaScript框架-前端开发
    时延抖动和通信的本质
    【Flink完全分布式环境搭建及应用,Standalone(开发测试)】
    Linux编译链接选项静态库--whole-archive,--no-whole-archive
    【IAP Kit】应用内支付订单参数相关问题解析
    三、复现U-net网络(Pytorch)
    【Unity3D】固定管线着色器二
  • 原文地址:https://blog.csdn.net/yuweiqiu1991/article/details/126970475