擦除uboot的参数
试用的是IM6UL的设备,我看烧写工具里的擦除UBOOT的参数是执行该指令,但是好像没有擦除参数。
dd if=/dev/zero of=/dev/mmcblk1 bs=1k seek=384 conv=fsync count=129
请问uboot的参数分区放在哪里。如何擦除。参数设置错误后直接用TF卡是升级也不行,感觉从TF卡启动去升级固件,没有擦除之前写错的UBOOT的参数。
因为uboot在mmc的第一boot分区内,而此分区是被设置为只读模式的,所以您无法通过uboot擦除boot分区内的内容
您可以通过修改mfgtools烧写工具里面的文件来实现,
文件为OKMX6UL-C(eMMC&Nand版)用户资料-2018.04\Linux\tools\OTG\mfgtools\Profiles\Linux\OS Firmware\ucl2.xml文件的444行
所涉及的部分如下:
<!-- burn uboot -->
<CMD state="Updater" type="push" body="$ dd if=/dev/zero of=/dev/mmcblk%mmc% bs=1k seek=384 conv=fsync count=129">clear u-boot arg</CMD>
<!-- access boot partition -->
<CMD state="Updater" type="push" body="$ echo 0 > /sys/block/mmcblk%mmc%boot0/force_ro">access boot partition 1</CMD>
<CMD state="Updater" type="push" body="send" file="files/linux/u-boot-emmc-256.imx" ifdev="MX6UL">Sending u-boot.bin</CMD>
<CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk%mmc%boot0 bs=512 seek=2">write U-Boot to sd card</CMD>
<CMD state="Updater" type="push" body="$ echo 1 > /sys/block/mmcblk%mmc%boot0/force_ro"> re-enable read-only access </CMD>
<CMD state="Updater" type="push" body="$ echo 8 > /sys/block/mmcblk%mmc%/device/boot_config">enable boot partion 1 to boot</CMD>
请问您为什么要擦除uboot呢?
Marss 发表于 2018-8-1 15:07
因为uboot在mmc的第一boot分区内,而此分区是被设置为只读模式的,所以您无法通过uboot擦除boot分区内的内 ...
我在系统起来之后去擦除UBOOT参数好像也不行的。
dd if=/dev/zero of=/dev/mmcblk%mmc% bs=1k seek=384 conv=fsync count=129
我们UBOOT进入命令模式,可以通过setenv设置参数,设置错误之后,启动不了,这时候线刷重新刷或者用SD卡启动去升级,都无法启动,也就是UBOOT的参数一直都没有被清除。如果被清除应该是试用默认的参数才对。 Marss 发表于 2018-8-1 15:07
因为uboot在mmc的第一boot分区内,而此分区是被设置为只读模式的,所以您无法通过uboot擦除boot分区内的内 ...
我多做了一个分区,用UBOOT的mmcroot去指定文件系统挂载的哪个,不小心输错了,后面就没办法直接通过线刷或者SD开启动升级来恢复。 不知道你的怎么分布的,你的多做的分区放在了那里?uboot分区对应的是mtd0,擦除命令直接是flash_erase /dev/mtd0 0 0 Marss 发表于 2018-8-1 15:23
不知道你的怎么分布的,你的多做的分区放在了那里?uboot分区对应的是mtd0,擦除命令直接是flash_erase /de ...
dd if=/dev/zero of=/dev/mmcblk1 bs=1k seek=384 conv=fsync count=129
这个的意思是吧mmcblk1的384K开始到(384+129)K的区域擦除掉把,我们UBOOT的参数也没有分这么大吧 Marss 发表于 2018-8-1 15:23
不知道你的怎么分布的,你的多做的分区放在了那里?uboot分区对应的是mtd0,擦除命令直接是flash_erase /de ...
我们UBOOT是写在mmblk1boot0的位置,这个区域是2M.参数是不是也在这里面呢。 额您用的是emmc的核心板吧? Marss 发表于 2018-8-1 16:05
额您用的是emmc的核心板吧?
是的,用的EMMC的 Marss 发表于 2018-8-1 16:05
额您用的是emmc的核心板吧?
是的,用的EMMC的 您可以看OTG烧写脚本里面,关于EMMC烧写uboot的参数,文件是在OKMX6UL-C(eMMC&Nand版)用户资料-2018.04\Linux\工具\OTG\mfgtools\Profiles\Linux\OS Firmware里面的ucl2-xml.xml文件,emmc的uboot烧写部分
<!-- burn uboot -->
<CMD body="$ dd if=/dev/zero of=/dev/mmcblk%mmc% bs=1k seek=384 conv=fsync count=129" type="push" state="Updater">clear u-boot arg</CMD>
<!-- access boot partition -->
<CMD body="$ echo 0 > /sys/block/mmcblk%mmc%boot0/force_ro" type="push" state="Updater">access boot partition 1</CMD>
<CMD ifdev="MX6UL" file="files/linux/u-boot-emmc.imx" body="send" type="push" state="Updater">Sending u-boot.bin</CMD>
<CMD body="$ dd if=$FILE of=/dev/mmcblk%mmc%boot0 bs=512 seek=2" type="push" state="Updater">write U-Boot to sd card</CMD>
<CMD body="$ echo 1 > /sys/block/mmcblk%mmc%boot0/force_ro" type="push" state="Updater"> re-enable read-only access </CMD>
<CMD body="$ echo 8 > /sys/block/mmcblk%mmc%/device/boot_config" type="push" state="Updater">enable boot partion 1 to boot</CMD>
按照此参数试一下
页:
[1]