打印
[i.MX]

mfgtool烧写镜像时,无法进入u-boot

[复制链接]
2694|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
aa421701136|  楼主 | 2015-10-16 10:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我自己做的一款板子,参考mx6q_sabresd,BSP是L3.0.35_4.1.0,mfg工具:Mfgtools-Rel-4.1.0_130816_MX6Q_UPDATER。使用mfg工具烧写到emmc卡上面,是成功的。之后设置fuse,使其从emmc卡上面启动,我使用示波器,也是看到emmc的SD4_CMD上面有波形,但mfg软件还是显示下载模式。
然后,我用另外一种方法进入u-boot,使用tftp把u-boot下载,并烧写到emmc的0地址上,重启板子就可以进入到u-boot了。之后,当我再次使用Mfgtools-Rel-4.1.0_130816_MX6Q_UPDATER下载整个系统时,也可以进入到u-boot了。
在ucl.xml文件,下载u-boot的语句是:dd if=$FILE of=/dev/mmcblk0boot0 bs=512 seek=2 skip=2。在这里我就有点不明白了,为什么要从emmc 1k之后的位置开始烧写,为什么要去掉u-boot.bin前面1k的内容?

相关帖子

沙发
FSL_TICS_Rita| | 2015-10-16 11:54 | 只看该作者
楼主你好,请问你在烧写完成后,启动时候板子boot mode是否设置为从emmc启动呢?

使用特权

评论回复
板凳
aa421701136|  楼主 | 2015-10-16 12:04 | 只看该作者
肯定是从emmc卡启动的,因为emmc的SD4_CMD上面有波形。我的boot_mode是设置为从fuse启动的,在下载的过程当中,已经执行了如下语句:
echo 0x5860 > /sys/fsl_otp/HW_OCOTP_CFG4
echo 0x10 > /sys/fsl_otp/HW_OCOTP_CFG5

使用特权

评论回复
地板
mini1986| | 2015-10-19 10:27 | 只看该作者
u-boot.bin有个带padding,有个不带padding的,你看看烧写的那个文档里有说明,需不需要skip 1K......

使用特权

评论回复
5
aa421701136|  楼主 | 2015-10-19 12:24 | 只看该作者
你好,请问你指的是哪个烧写文档,我在Document\V2没有找到你说的关于u-boot.bin的padding说法

使用特权

评论回复
6
aa421701136|  楼主 | 2015-10-19 17:02 | 只看该作者
mini1986 发表于 2015-10-19 10:27
u-boot.bin有个带padding,有个不带padding的,你看看烧写的那个文档里有说明,需不需要skip 1K...... ...

我的u-boot.bin是直接在u-boot-2009.08主目录下,使用make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-得到的。想请问下,这种情况下编译出来的u-boot.bin是带padding的还是不带padding?

使用特权

评论回复
7
aa421701136|  楼主 | 2015-10-19 17:42 | 只看该作者
FSL_TICS_Rita 发表于 2015-10-16 11:54
楼主你好,请问你在烧写完成后,启动时候板子boot mode是否设置为从emmc启动呢? ...

你好,请问你能回答一下emmc卡前面1k byte主要是用来做什么的?当我们第一次使用emmc卡时,如何烧写前面1k byte的内容?

使用特权

评论回复
8
mini1986| | 2015-10-20 08:39 | 只看该作者
aa421701136 发表于 2015-10-19 17:02
我的u-boot.bin是直接在u-boot-2009.08主目录下,使用make ARCH=arm CROSS_COMPILE=arm-none-linux-gnuea ...

应该是带了,你按文档上说的来就可以了......

使用特权

评论回复
9
aa421701136|  楼主 | 2015-10-20 11:03 | 只看该作者
mini1986 发表于 2015-10-20 08:39
应该是带了,你按文档上说的来就可以了......

我是按照文档上面说的来烧写。但是按照ud.xml,u-boot是烧写到1k之后的位置。系统应该会从emmc的0位置开始执行,那么它是如何执行到u-boot的呢?现在的问题,按照文档,使用mfg工具烧写emmc,重新启动后u-boot没有被执行。

使用特权

评论回复
10
aa421701136|  楼主 | 2015-10-21 17:35 | 只看该作者
问题算是找到了,使用mfgtool工具下载u-boot到emmc的1k开始的位置。下载完成之后,我把emmc从1k位置开始读取一部分内容出来,与u-boot.bin的1k位置的内容进行比较,发现两者不一样。也就是说,u-boot.bin并没有被下载到emmc卡的对应位置上。至于为什么会这样,我现在没搞明白。希望知道的人,可以告知一下。

使用特权

评论回复
11
mini1986| | 2015-10-23 09:49 | 只看该作者
aa421701136 发表于 2015-10-21 17:35
问题算是找到了,使用mfgtool工具下载u-boot到emmc的1k开始的位置。下载完成之后,我把emmc从1k位置开始读 ...

eMMC前1K中的前512B是存储分区表的吧......你网上详细去找找相关资料......
怎么去启动,是片子内部rom里面的东西处理的,你看不到的,只能说是按照官方的文档来操作即可......

使用特权

评论回复
12
afei8856| | 2015-11-14 15:11 | 只看该作者
@aa421701136 楼主,你用tftp怎么下载uboot的,我的能显示下载成功,但是一重新启动又是原先的uboot了

使用特权

评论回复
13
quray1985| | 2015-11-15 20:17 | 只看该作者
使用mfgtool工具下载u-boot到emmc的1k开始的位置。下载完成之后,我把emmc从1k位置开始读取一部分内容出来,与u-boot.bin的1k位置的内容进行比较,发现两者不一样。原来是这个原因啊,学习了

使用特权

评论回复
14
cowboy2014| | 2015-11-15 20:47 | 只看该作者
楼主按照官网的要求一步步的调试吧

使用特权

评论回复
15
aa421701136|  楼主 | 2015-11-19 08:56 | 只看该作者
afei8856 发表于 2015-11-14 15:11
@aa421701136 楼主,你用tftp怎么下载uboot的,我的能显示下载成功,但是一重新启动又是原先的uboot了 ...

我是把u-boot.bin直接烧写到0的位置,这样的话,启动的时候就应该是烧写的u-boot了。但是这样做的话,会把前面1k的内容给覆盖了,导致分区信息被覆盖,文件系统启动出错。

使用特权

评论回复
16
afei8856| | 2015-11-20 10:45 | 只看该作者
aa421701136 发表于 2015-11-19 08:56
我是把u-boot.bin直接烧写到0的位置,这样的话,启动的时候就应该是烧写的u-boot了。但是这样做的话,会 ...

我改的也是这样子,文件系统出错
不过我现在这样子没问题了
tftp 0x10800000 u-boot.bin; mmc dev 3 1;mmc erase 0x0 0x400; mmc write 0x10800000 0 0x400
mw 0x10800000 0x800 0x2000;tftp 0x10800000 uImage; mmc dev 3; mmc write 0x10800000 0x800 0x2000
tftp 0x10c00000  rootfs.tar.bz2;  mmc dev 3;nand  write.yaffs2 0X10c00000  0x280000 $(filesize)
但是文件系统烧写不行,我再想办法怎么更新文件系统

使用特权

评论回复
17
Beckham_Owen| | 2015-11-21 18:15 | 只看该作者
u-boot.bin有个带padding,有个不带padding的,楼主看看你选择的是哪个?

使用特权

评论回复
18
ccw1986| | 2015-11-22 17:32 | 只看该作者
没有遇到过类似的问题,帮顶了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

37

帖子

1

粉丝