嵌入式爱好者

查看: 16701|回复: 10

[Linux] 擦除uboot的参数

[复制链接]

9

主题

35

帖子

56

积分

扫一扫,手机访问本帖
发表于 2018-8-1 14:23:16 | 显示全部楼层 |阅读模式
试用的是IM6UL的设备,我看烧写工具里的擦除UBOOT的参数是
执行该指令,但是好像没有擦除参数。
dd if=/dev/zero of=/dev/mmcblk1 bs=1k seek=384 conv=fsync count=129

请问uboot的参数分区放在哪里。如何擦除。参数设置错误后直接用TF卡是升级也不行,感觉从TF卡启动去升级固件,没有擦除之前写错的UBOOT的参数。



回复

使用道具 举报

0

主题

177

帖子

321

积分

AM5718通行证AM335x通行证i.MX6UL通行证i.MX6Q通行证XX18通行证TCU通行证

发表于 2018-8-1 15:07:45 | 显示全部楼层
因为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呢?

点评

我多做了一个分区,用UBOOT的mmcroot去指定文件系统挂载的哪个,不小心输错了,后面就没办法直接通过线刷或者SD开启动升级来恢复。  详情 回复 发表于 2018-8-1 15:14
我在系统起来之后去擦除UBOOT参数好像也不行的。 dd if=/dev/zero of=/dev/mmcblk%mmc% bs=1k seek=384 conv=fsync count=129 我们UBOOT进入命令模式,可以通过setenv设置参数,设置错误之后,启动不了,这时候线  详情 回复 发表于 2018-8-1 15:13
点评回复 支持 反对

使用道具 举报

9

主题

35

帖子

56

积分

 楼主| 发表于 2018-8-1 15:13:28 | 显示全部楼层
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的参数一直都没有被清除。如果被清除应该是试用默认的参数才对。
点评回复 支持 反对

使用道具 举报

9

主题

35

帖子

56

积分

 楼主| 发表于 2018-8-1 15:14:51 | 显示全部楼层
Marss 发表于 2018-8-1 15:07
因为uboot在mmc的第一boot分区内,而此分区是被设置为只读模式的,所以您无法通过uboot擦除boot分区内的内 ...

我多做了一个分区,用UBOOT的mmcroot去指定文件系统挂载的哪个,不小心输错了,后面就没办法直接通过线刷或者SD开启动升级来恢复。
点评回复 支持 反对

使用道具 举报

0

主题

177

帖子

321

积分

AM5718通行证AM335x通行证i.MX6UL通行证i.MX6Q通行证XX18通行证TCU通行证

发表于 2018-8-1 15:23:14 | 显示全部楼层
不知道你的怎么分布的,你的多做的分区放在了那里?uboot分区对应的是mtd0,擦除命令直接是flash_erase /dev/mtd0 0 0

点评

我们UBOOT是写在mmblk1boot0的位置,这个区域是2M.参数是不是也在这里面呢。  详情 回复 发表于 2018-8-1 15:46
dd if=/dev/zero of=/dev/mmcblk1 bs=1k seek=384 conv=fsync count=129 这个的意思是吧mmcblk1的384K开始到(384+129)K的区域擦除掉把,我们UBOOT的参数也没有分这么大吧  详情 回复 发表于 2018-8-1 15:43
点评回复 支持 反对

使用道具 举报

9

主题

35

帖子

56

积分

 楼主| 发表于 2018-8-1 15:43:55 | 显示全部楼层
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的参数也没有分这么大吧
点评回复 支持 反对

使用道具 举报

9

主题

35

帖子

56

积分

 楼主| 发表于 2018-8-1 15:46:44 | 显示全部楼层
Marss 发表于 2018-8-1 15:23
不知道你的怎么分布的,你的多做的分区放在了那里?uboot分区对应的是mtd0,擦除命令直接是flash_erase /de ...

我们UBOOT是写在mmblk1boot0的位置,这个区域是2M.参数是不是也在这里面呢。
点评回复 支持 反对

使用道具 举报

0

主题

177

帖子

321

积分

AM5718通行证AM335x通行证i.MX6UL通行证i.MX6Q通行证XX18通行证TCU通行证

发表于 2018-8-1 16:05:08 | 显示全部楼层
额  您用的是emmc的核心板吧?

点评

是的,用的EMMC的  详情 回复 发表于 2018-8-1 17:29
是的,用的EMMC的  详情 回复 发表于 2018-8-1 17:22
点评回复 支持 反对

使用道具 举报

9

主题

35

帖子

56

积分

 楼主| 发表于 2018-8-1 17:22:44 | 显示全部楼层
Marss 发表于 2018-8-1 16:05
额  您用的是emmc的核心板吧?

是的,用的EMMC的
点评回复 支持 反对

使用道具 举报

9

主题

35

帖子

56

积分

 楼主| 发表于 2018-8-1 17:29:37 | 显示全部楼层
Marss 发表于 2018-8-1 16:05
额  您用的是emmc的核心板吧?

是的,用的EMMC的
点评回复 支持 反对

使用道具 举报

0

主题

177

帖子

321

积分

AM5718通行证AM335x通行证i.MX6UL通行证i.MX6Q通行证XX18通行证TCU通行证

发表于 2018-8-2 09:07:25 | 显示全部楼层
您可以看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>

按照此参数试一下
点评回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-5-19 03:09

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表