IMX6修改启动分区

IMX6更换启动分区

一、emmc的boot分区

image

厂家的emmc一般都由这几部分组成:UDA, BOOT Area Partition 1,BOOT Area Partition 2,PRMB。

root@imx6qsabresd:/# ls /dev/mmc*
/dev/mmcblk3       /dev/mmcblk3boot1  /dev/mmcblk3p2
/dev/mmcblk3boot0  /dev/mmcblk3p1     /dev/mmcblk3rpmb

mx6q默认启动分区是Boot Partiotion 1

那具体是在哪里配置的呢,怎么烧写在这里呢,又什么时候配置Boot Partition 1是启动分区的,在哪里配置的呢。

二、更改启动分区

emmc boot寄存器

image

image

在uboot中有emmc命令,用于设置emmc的寄存器

 > mmc partconf  dev  boot_ack  boot_partition  partition_access
 > mmc partconf 2 0 0 0   //第一位是emmc的编号, 第二位是是否需要回应,第三位参数设置启动的分区,对应寄存器BOOT_PARTITION_ENABLE字段。设为2表示使能引导分区1 ,第四位,当前访问的分区,0对应的是UDA                        

三、通过mfgtool和sd烧写更换烧写分区和启动分区

1、mfgtool烧写

mfgtool的ucl2.xml文件修改启动分区为2。

<!-- burn uboot -->
<CMD state="Updater" type="push" body="$ dd if=/dev/zero of=/dev/mmcblk%mmc% bs=1k seek=768 conv=fsync count=8">clear u-boot arg</CMD>
<!-- access boot partition -->
<CMD state="Updater" type="push" body="$ echo 0 > /sys/block/mmcblk%mmc%boot1/force_ro">access boot partition 2</CMD>
<CMD state="Updater" type="push" body="send" file="files/okmx6-%plus%/u-boot-6q%ram%.imx" ifdev="MX6Q">Sending u-boot.bin</CMD>
<CMD state="Updater" type="push" body="send" file="files/okmx6-%plus%/u-boot-6dl%ram%.imx" ifdev="MX6D">Sending u-boot.bin</CMD>
<CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk%mmc%boot1 bs=512 seek=2">write U-Boot to sd card</CMD> 
<CMD state="Updater" type="push" body="$ echo 1 > /sys/block/mmcblk%mmc%boot1/force_ro"> re-enable read-only access </CMD>
<CMD state="Updater" type="push" body="$ mmc bootpart enable 2 1 /dev/mmcblk%mmc%">enable boot partion 2 to boot</CMD> 

2、sd卡烧写

原理与上边一样,请结合对应平台进行操作。


原文章来自于:https://www.shuzhiduo.com/A/A2dmxpN45e/#google_vignette

posted @ 2024-01-15 11:01  金色沃野  阅读(418)  评论(0)    收藏  举报