打印
[i.MX]

英蓓特Sabre Lite开发板烧制u-boot的大小为300多k, 启动无串口信

[复制链接]
2949|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xumin3348|  楼主 | 2014-11-12 11:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xumin3348 于 2014-11-12 11:26 编辑

1、采用Mfgtools-Rel-12.04.01_ER_MX6Q_UPDATER工具烧录u-boot.bin,放在files目录下的文件是通过u-boot-2013.07.tar.bz2编译的u-boot.bin,大小为300多k,而Mfgtools-Rel-12.04.01_ER_MX6Q_UPDATER工具只支持烧录<=256K的u-boot.bin。所以按照下面的方法烧制u-boot,如果烧制的是u-boot.2009.08编译出来的u-boot.bin,采用下面方法写入后,重启可以正常启动该uboot,而烧制u-boot.2013.07编译出的u-boot.bin(里面还有u-boot.imx),能正常写入,但重启后串口无任何显示:

Creating 2 MTD partitions on "m25p80":
0x000000000000-0x000000040000 : "bootloader"
0x000000040000-0x000000200000 : "kernel"
果然mtd0 只有256k ,所以用MFG tool将uboot.bin 写进此分区肯定写不完全,
楼主可以:
1 将你用的linux内核修改下spiflash的分区。
2 用mfg tool 烧写普通uboot进spi flash,待系统启动后
用flash eraseall  和dd 命令更新你的肥胖uboot程序。


相关帖子

沙发
FSL_TICS_Rita| | 2014-11-12 14:58 | 只看该作者
楼主你好,请问你能把你的问题描述的具体一些吗?

使用特权

评论回复
板凳
xumin3348|  楼主 | 2014-11-12 15:45 | 只看该作者
本帖最后由 xumin3348 于 2014-11-12 16:10 编辑
FSL_TICS_Rita 发表于 2014-11-12 14:58
楼主你好,请问你能把你的问题描述的具体一些吗?

1、我购买了一块SABRE Lite Imx6Q开发板,其提供了烧录工具Mfgtools-Rel-12.04.01_ER_MX6Q_UPDATER及u-boot.2013.07.tar.bz2。
   使用u-boot.2013.07.tar.bz2编译出来的文件有u-boot.imx,u-boot.bin。
2、其烧录工具Mfgtools-Rel-12.04.01_ER_MX6Q_UPDATER\Profiles\MX6Q Linux Update\OS Firmware 下引导烧录用的内核启动时只分配外设spi norflash(即/dev/mtd0,这个地方存放的就是启动用的u-boot)的空间大小只有256K,而
   我使用u-boot.2013.07.tar.bz2编译出来的文件u-boot.bin有300多k,结果因为这个/dev/mtd0空间太小而无法写入。
   
3、于是,我上网查了一下解决方法,简述如下:
   1、将Mfgtools-Rel-12.04.01_ER_MX6Q_UPDATER\Profiles\MX6Q Linux Update\OS Firmware\files下放的uImage分给/dev/mtd0的空间大小改为1M,u-boot.bin使用
    176k的u-boot.bin.烧录成功后,重启,将download模式切换到正常模式,系统从新烧的u-boot.bin和新的uImage启动。
   2、使用flash_erase擦除/dev/mtd0,将那个采用u-boot.2013.07.tar.bz2生成的300多k的u-boot.bin通过ftpget协议(ftpget -u xxx -p xxx my_wftp32_serverip u-boot.bin) 下到开发板中。
   3、使用dd if=/u-boot.bin of=/dev/mtd0 bs=512烧录进去,dd命令返回OK。
   4、重启后,串口无任何信息。
   
4、附录UCL配置文件内容   
   
<UCL>
  <CFG>
    <STATE name="Recovery" dev="MX6Q"/>
    <DEV name="MX6Q" vid="15A2" pid="0054"/>
    <STATE name="Updater"   dev="Updater" />
    <DEV name="Updater" vid="066F" pid="37FF" />
  </CFG>

<LIST name="Sabre-lite-timesys" desc="Choose SPI-NOR/SD as media">
        <CMD type="find" body="Recovery" timeout="180"/>
        <CMD type="boot" body="Recovery" file="u-boot-mx6q-sabrelite.bin" >Loading uboot.</CMD>
        <CMD type="load" file="uImage" address="0x10800000"
                loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Doing Kernel.</CMD>
        <CMD type="load" file="initramfs.cpio.gz.uboot" address="0x10C00000"
                loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Doing Initramfs.</CMD>
        <CMD type="jump" > Jumping to OS image. </CMD>
        <CMD type="find" body="Updater" timeout="180"/>

        <!--burn the uboot to SPI-NOR: -->
        <CMD type="push" body="$ flash_eraseall /dev/mtd0">Erasing Boot partition</CMD>
        <CMD type="push" body="send" file="files/u-boot.bin">Sending U-Boot</CMD>
        <CMD type="push" body="$ dd if=$FILE of=/dev/mtd0 bs=512">write U-Boot to SPI-NOR</CMD>
        
        
        
        5、如果在3.2步将176k的u-boot.bin通过网口下到开发板,这个u-boot.bin来自Mfgtools-Rel-12.04.01_ER_MX6Q_UPDATER\Profiles\MX6Q Linux Update\OS Firmware 下做烧录引导用的那个u-boot.bin(或者使用u-boot.2009.08编译出来的u-boot.bin),采用3.3,3.4步骤后,u-boot能正常启动,且已经是刚烧录的u-boot。
           

使用特权

评论回复
地板
xumin3348|  楼主 | 2014-11-12 16:01 | 只看该作者
本帖最后由 xumin3348 于 2014-11-12 16:05 编辑

网上一位大侠给出了解决方法,说烧录u-boot.2013.07.tar.bz2编译出来的u-boot的话,要烧录的文件是u-boot.imx,且UCL文件需要做如下 修改:
从        <CMD type="push" body="send" file="files/u-boot.bin">Sending U-Boot</CMD>
        <CMD type="push" body="$ dd if=$FILE of=/dev/mtd0 bs=512">write U-Boot to SPI-NOR</CMD>
改为:
         <CMD type="push" body="send" file="files/u-boot.imx">Sending U-Boot</CMD>
        <CMD type="push" body="$ dd if=$FILE of=/dev/mtd0 bs=1K seek=1">write U-Boot to SPI-NOR</CMD>

当然采用我上面的通过一个普通的uboot和内核引导起来后,在内核起来后,将一个300多k的u-boot.imx再写入到/dev/mtd0也是可以的。

果然,通过这两种方式,300多k的uboot都能写入成功,且有相应打印信息。

    但我不明白的是,为啥u-boot.2009.08生成的u-boot只有u-boot.bin,而u-boot.2013.07生成的u-boot不仅有u-boot.bin,还有u-boot.imx,而且烧录用的是u-boot.imx,那个u-boot.bin能用么?怎么用?

使用特权

评论回复
5
jileleke| | 2015-1-8 11:53 | 只看该作者
你好,我想通过uboot命令更新uboot2013.步骤:
1.MX6QSABRELITE U-Boot > tftp u-boot.imx    //Load address: 0x12000000
2.MX6QSABRELITE U-Boot > sf probe
3.MX6QSABRELITE U-Boot > sf erase 0 50000
4.MX6QSABRELITE U-Boot > sf write 12000000 0 4ed14 // uboot2013 size is 4ed14
但是我重新启动后,板子没有打印信息,我更新2009的,就可以,请问为什么?

使用特权

评论回复
6
jileleke| | 2015-1-8 13:39 | 只看该作者
我解决了,分享一下:
把uboot2013烧写到nor flash上:
        sf probe
        sf erase 0 +0x50000  
        sf write 0x10800000 0x400 0x50000

使用特权

评论回复
7
zhaohu1218| | 2015-1-20 11:03 | 只看该作者
xumin3348 发表于 2014-11-12 16:01
网上一位大侠给出了解决方法,说烧录u-boot.2013.07.tar.bz2编译出来的u-boot的话,要烧录的文件是u-boot.i ...

真是太感谢了,我也正好碰到这个问题,使用你的方法OK了。
你说的一位大侠给出的方法,请问你是在哪里找到的?

使用特权

评论回复
8
xumin3348|  楼主 | 2015-1-22 15:38 | 只看该作者
英蓓特官方提供的针对u-boot.2013.07.tar.bz2的烧录工具Mfgtools-Rel-12.04.01_ER_MX6Q_UPDATER版本有问题,里面的配置是错误的,所以导致烧录失败。于是我给官方发了一个邮件,怀疑他们的烧录工具和源代码版本不匹配。他回复了我的邮件,然后把对应的烧录工具发给我了。他的烧录工具和以前失败的工具的差异就是我在上面说的。这就是“大侠”。

使用特权

评论回复
9
陌小生| | 2015-1-22 20:38 | 只看该作者
了解一下

使用特权

评论回复
10
liuyanfeng1818| | 2015-5-12 23:26 | 只看该作者
楼主你好,我也遇到你这个问题了。但是按照大神的做法,还是不行啊。错误如下:
UTP: sending Success to kernel for command $ flash_eraseall /dev/mtd0.
utp_poll: pass returned.
UTP: received command 'send'
UTP: sending Success to kernel for command send.
UTP: received command '$ dd if=$FILE of=/dev/mtd0 bs=1K seek=1'
UTP: executing "dd if=$FILE of=/dev/mtd0 bs=1K seek=1"
dd: writing '/dev/mtd0': No space left on device
256+0 records in
255+0 records out
261120 bytes (255.0KB) copied, 7.700594 seconds, 33.1KB/s
UTP: sending Non-success to kernel for command $ dd if=$FILE of=/dev/mtd0 bs=1K seek=1.
utp_poll: exit with status 256。

哪里有问题吗?先谢过了。

使用特权

评论回复
11
Nerror| | 2015-5-29 17:01 | 只看该作者
xumin3348: 把那个OK的烧录工具共享一下,可以吗?

使用特权

评论回复
12
mini1986| | 2015-6-2 08:44 | 只看该作者
好贴,收藏了,谢谢分享......

使用特权

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

本版积分规则

21

主题

72

帖子

0

粉丝