首先需要一张sdcard用于放置镜像文件,  sdcard需要格式化为fat32格式, 然后再将镜像复制到sdcard上.

开发板先插入带镜像文件的sdcard, 然后设置从eMMC启动, 启动后进入u-boot

Target(U-Boot)
=> fatls mmc 0:1
 1006632960   fsl-image-validation-imx-imx7d-phyboard-zeta-001.sdcard
=> fatload mmc 0:1 ${loadaddr} fsl-image-validation-imx-imx7d-phyboard-zeta-001.sdcard
reading fsl-image-validation-imx-imx7d-phyboard-zeta-001.sdcard
1006632960 bytes read in 86679 ms (11.1 MiB/s)
=> mmc write ${loadaddr} 0x0 [写的blocks数目, 在这个例子中是0x1E1000]

MMC write: dev # 1, block # 0, count 1970176 ... 1970176 blocks written: OK

=> reset

mx7中一个block为512Bytes, blocks数目=镜像大小/512, 最好再预留多2M空间, 即再加4096Blocks.


单独更新U-BOOT,内核/设备树, 文件系统

单独更新u-boot

Target(U-Boot)
=> fatload mmc 0:1 ${loadaddr} u-boot.imx
=> mmc dev 1
=> mmc write ${loadaddr} 0x2 <u-boot image size in blocks>

单独更新linux/设备树

Target(Linux)
# The eMMC partitions will mount to /run/media/ on boot. If you just partitioned eMMC, you may manually mount the partition:
mkdir /run/media/mmcblk2p1
mount /dev/mmcblk2p1 /run/media/mmcblk2p1
  
cp /run/media/mmcblk0p1/zImage /run/media/mmcblk2p1/; sync
cp /run/media/mmcblk0p1/zImage-<YOCTO_MACHINE>.dtb /run/media/mmcblk2p1/oftree; sync

单独更新文件系统

Target(Linux)
dd if=/run/media/mmcblk0p3/<YOCTO_IMAGE>-<YOCTO MACHINE>.ext4 of=/dev/mmcblk2p2 bs=1M
  • No labels