打印
[i.MX]

mfgtool工具失败,求助

[复制链接]
9695|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
leifenger|  楼主 | 2014-11-24 14:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
hz, TI, sd, ck, mx
从飞思卡尔官网下载的Mfgtools-Rel-4.1.0_130816_MX6Q_UPDATER,在尝试烧写u-boot.bin,uImage,rootfs.tar.bz2到SD卡时,遇到问题如下:

U-Boot 2009.08 (Nov 21 2014 - 09:54:19)

CPU: Freescale i.MX6 family TO1.2 at 792 MHz
Thermal sensor with ratio = 191
Temperature:   40 C, calibration data 0x5b65157d
mx6q pll1: 792MHz
mx6q pll2: 528MHz
mx6q pll3: 480MHz
mx6q pll8: 50MHz
ipg clock     : 66000000Hz
ipg per clock : 66000000Hz
uart clock    : 80000000Hz
cspi clock    : 60000000Hz
ahb clock     : 132000000Hz
axi clock   : 264000000Hz
emi_slow clock: 132000000Hz
ddr clock     : 528000000Hz
usdhc1 clock  : 198000000Hz
usdhc2 clock  : 198000000Hz
usdhc3 clock  : 198000000Hz
usdhc4 clock  : 198000000Hz
nfc clock     : 24000000Hz
Board: i.MX6Q-SABRESD: unknown-board Board: 0x63012 [POR ]
Boot Device: SPI NOR
I2C:   ready
DRAM:   1 GB
MMC:   FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3
Card did not respond to voltage select!
MMC init failed
In:    serial
Out:   serial
Err:   serial
i2c: I2C1 SDA is low, start i2c recovery...
I2C1 Recovery success
Found PFUZE100! deviceid=10,revid=11
Net:   got MAC address from IIM: 00:04:9f:02:e2:10
FEC0
MX6Q SABRESD U-Boot >

此时mfgtool工具显示Jumping to OS image,然后就不动了。

cfg.xml内容
[profiles]
chip = Linux

[platform]
board = iMX6-SabreSDB

[LIST]
name = iMX6-SabreSDB-SD

ucl2.xml文件内容:
<UCL>
  <CFG>
    <STATE name="BootStrap" dev="MX6Q" vid="15A2" pid="0054"/>
        <STATE name="Updater"   dev="MSC" vid="066F" pid="37FF"/>
  </CFG>
  
  <LIST name="iMX6-SabreSDB-SD" desc="Choose SD as media">
  
  <CMD state="BootStrap" type="boot" body="BootStrap" file ="files/u-boot.bin" >Loading U-boot</CMD>
        <CMD state="BootStrap" type="load" file="files/uImage" address="0x10800000"
        loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading Kernel.</CMD>
        <CMD state="BootStrap" type="load" file="files/initramfs.cpio.gz.uboot" address="0x10C00000"
        loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading Initramfs.</CMD>
        <CMD state="BootStrap" type="jump" > Jumping to OS image. </CMD>
       
        <CMD state="Updater" type="push" body="send" file="files/u-boot.bin">Sending U-Boot</CMD>       
        <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk1 bs=512 seek=2 skip=2 conv=fsync">write U-Boot to SPI-NOR</CMD>
        <CMD state="Updater" type="push" body="$ flash_eraseall /dev/mtd1">Clear Params</CMD>

        <CMD state="Updater" type="push" body="send" file="files/uImage">Sending kernel uImage</CMD>
        <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk1 bs=512 seek=2048 conv=fsync">write kernel image to sd card</CMD>
       
        <CMD state="Updater" type="push" body="send" file="mksdcard.sh.tar">Sending partition shell</CMD>
        <CMD state="Updater" type="push" body="$ tar xf $FILE "> Partitioning...</CMD>
        <CMD state="Updater" type="push" body="$ sh mksdcard.sh /dev/mmcblk1"> Partitioning...</CMD>

        <CMD state="Updater" type="push" body="$ mkfs.ext3 -j /dev/mmcblk1p1">Formatting rootfs partition</CMD>
        <CMD state="Updater" type="push" body="$ mkdir -p /mnt/mmcblk1p1"/>
        <CMD state="Updater" type="push" body="$ mount -t ext3 /dev/mmcblk1p1 /mnt/mmcblk1p1"/>
        <CMD state="Updater" type="push" body="pipe tar --numeric-owner -jxvf -C /mnt/mmcblk1p1" file="files/rootfs.tar.bz2">Sending and writting rootfs</CMD>
        <CMD state="Updater" type="push" body="frf">Finishing rootfs write</CMD>
        <CMD state="Updater" type="push" body="$ umount /mnt/mmcblk1p1">Unmounting rootfs partition</CMD>
        <CMD state="Updater" type="push" body="$ echo Update Complete!">Done</CMD>
  </LIST>

</UCL>

相关帖子

沙发
creator_w| | 2014-11-24 15:30 | 只看该作者
楼主主机是什么系统

使用特权

评论回复
板凳
leifenger|  楼主 | 2014-11-24 15:34 | 只看该作者
板子类型为iMX6 Sabre-SDB
文件位置如图,initramfs.cpio.gz.uboot也是做了如下2个修改编译出来的。

生成uboot映像initramfs.cpio.gz.uboot 制作方法
1、修改config/platform/imx/imx6q_updater.cf
CONFIG_PKG_U_BOOT_CONFIG_TYPE="mx6q_sabresd_mfg_config"
CONFIG_BOARD_MX6Q_SABRESD=y
2、
./ltib --profile config/platform/imx/updater.profile --preconfig config/platform/imx/imx6q_updater.cf --continue --batch

222.png (31.64 KB )

222.png

使用特权

评论回复
地板
FSL_TICS_Rita| | 2014-11-24 16:17 | 只看该作者
楼主你这里是用的是官网的开发板,还是你自己设计的板子?

使用特权

评论回复
5
FSL_TICS_Rita| | 2014-11-24 16:18 | 只看该作者
这里烧写的images是你自己编译的还是官网的Demo?

使用特权

评论回复
6
FSL_TICS_Rita| | 2014-11-24 16:20 | 只看该作者
还有你这里配置cfg.ini文件中
[platform]
board = SabreSD
才是正确的。

使用特权

评论回复
7
leifenger|  楼主 | 2014-11-24 21:19 | 只看该作者
Rita,你好,我的单板是原厂的 iMX6Q-SabreSDB,
根据文档《i.MX_6Dual6Quad_SABRE-SD_Linux_User's_Guide》,
将 ./config/platform/imx/imx6q_updater.cf文件内容修改为
CONFIG_PKG_U_BOOT_CONFIG_TYPE="mx6q_sabresd_mfg_config"
CONFIG_BOARD_MX6Q_SABRESD=y
执行./ltib --profile config/platform/imx/updater.profile --preconfig config/platform/imx/imx6q_updater.cf --continue --batch
生成了initramfs.cpio.gz.uboot文件,
将initramfs.cpio.gz.uboot和之前SD卡启动可以用的u-boot.bin、uImage、rootfs.tar.bz2这
4个文件放置在Mfgtools-Rel-4.1.0_130816_MX6Q_UPDATER\Profiles\Linux\OS Firmware\files目录下,设置拨码SW6为 00110000(8至1),将SD卡插在SD2槽位上

使用特权

评论回复
8
leifenger|  楼主 | 2014-11-24 21:33 | 只看该作者
这时候uboot只能启动到这里

U-Boot 2009.08 (Nov 21 2014 - 09:54:19)

CPU: Freescale i.MX6 family TO1.2 at 792 MHz
Thermal sensor with ratio = 191
Temperature:   34 C, calibration data 0x5b65157d
mx6q pll1: 792MHz
mx6q pll2: 528MHz
mx6q pll3: 480MHz
mx6q pll8: 50MHz
ipg clock     : 66000000Hz
ipg per clock : 66000000Hz
uart clock    : 80000000Hz
cspi clock    : 60000000Hz
ahb clock     : 132000000Hz
axi clock   : 264000000Hz
emi_slow clock: 132000000Hz
ddr clock     : 528000000Hz
usdhc1 clock  : 198000000Hz
usdhc2 clock  : 198000000Hz
usdhc3 clock  : 198000000Hz
usdhc4 clock  : 198000000Hz
nfc clock     : 24000000Hz
Board: i.MX6Q-SABRESD: unknown-board Board: 0x63012 [POR ]
Boot Device: SPI NOR
I2C:   ready
DRAM:   1 GB
MMC:   FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3
Card did not respond to voltage select!
MMC init failed
In:    serial
Out:   serial
Err:   serial
Found PFUZE100! deviceid=10,revid=11
Net:   got MAC address from IIM: 00:04:9f:02:e2:10
FEC0
MX6Q SABRESD U-Boot >

Rita,
1、SD卡究竟应该插在SD2还是SD3啊?
2、mfgtool烧写的u-boot.bin、uImage、rootfs.tar.bz2是用
可以SD卡启动的文件还是./ltib --profile config/platform/imx/updater.profile --preconfig
config/platform/imx/imx6q_updater.cf --continue --batch编译出来的文件?
3、能否给出一套完整的mfgtool工具烧写linux的文件压缩包,包括了工具、配置文件、映像文件。

使用特权

评论回复
9
leifenger|  楼主 | 2014-11-25 11:08 | 只看该作者
下面是ucl2.xml内容:

使用特权

评论回复
10
leifenger|  楼主 | 2014-11-25 11:12 | 只看该作者
<UCL>
  <CFG>
    <STATE name="BootStrap" dev="MX6Q" vid="15A2" pid="0054"/>
          <STATE name="Updater"   dev="MSC" vid="066F" pid="37FF"/>
  </CFG>

  <LIST name="Sabre-SD" desc="Choose SD as media">

  <CMD state="BootStrap" type="boot" body="BootStrap" file ="files/u-boot.bin" >Loading U-boot</CMD>
        <CMD state="BootStrap" type="load" file="files/uImage" address="0x10800000" loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading Kernel.</CMD>
        <CMD state="BootStrap" type="load" file="files/initramfs.cpio.gz.uboot" address="0x10C00000" loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading Initramfs.</CMD>
        <CMD state="BootStrap" type="jump" > Jumping to OS image. </CMD>
       
        <CMD state="Updater" type="push" body="send" file="files/u-boot.bin">Sending U-Boot</CMD>
        <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk1 bs=512 seek=2 skip=2">write U-Boot to sd card</CMD>
                       
        <CMD state="Updater" type="push" body="send" file="files/uImage">Sending kernel uImage</CMD>
        <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk1 bs=512 seek=2048 conv=fsync">write kernel image to sd card</CMD>
       
        <CMD state="Updater" type="push" body="send" file="mksdcard.sh.tar">Sending partition shell</CMD>
        <CMD state="Updater" type="push" body="$ tar xf $FILE "> Partitioning...</CMD>
        <CMD state="Updater" type="push" body="$ sh mksdcard.sh /dev/mmcblk1"> Partitioning...</CMD>

        <CMD state="Updater" type="push" body="$ mkfs.ext3 -j /dev/mmcblk1p1">Formatting rootfs partition</CMD>
        <CMD state="Updater" type="push" body="$ mkdir -p /mnt/fs"/>
        <CMD state="Updater" type="push" body="$ mount -t ext3 /dev/mmcblk1p1 /mnt/fs"/>
        <CMD state="Updater" type="push" body="pipe tar  -jxv -C /mnt/fs" file="files/rootfs.tar.bz2">Sending and writting rootfs</CMD>
        <CMD state="Updater" type="push" body="frf">Finishing rootfs write</CMD>
        <CMD state="Updater" type="push" body="$ umount /mnt/fs">Unmounting rootfs partition</CMD>

  </LIST>
</UCL>
用mfgtool烧写完成后,uboot启动到这里停下了

U-Boot 2009.08 (Nov 25 2014 - 10:03:00)

CPU: Freescale i.MX6 family TO1.2 at 792 MHz
Thermal sensor with ratio = 191
Temperature:   37 C, calibration data 0x5b65157d
mx6q pll1: 792MHz
mx6q pll2: 528MHz
mx6q pll3: 480MHz
mx6q pll8: 50MHz
ipg clock     : 66000000Hz
ipg per clock : 66000000Hz
uart clock    : 80000000Hz
cspi clock    : 60000000Hz
ahb clock     : 132000000Hz
axi clock   : 264000000Hz
emi_slow clock: 132000000Hz
ddr clock     : 528000000Hz
usdhc1 clock  : 198000000Hz
usdhc2 clock  : 198000000Hz
usdhc3 clock  : 198000000Hz
usdhc4 clock  : 198000000Hz
nfc clock     : 24000000Hz
Board: i.MX6Q-SABRESD: unknown-board Board: 0x63012 [WDOG ]
Boot Device: SD
I2C:   ready
DRAM:   1 GB
MMC:   FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3
Using default environment

In:    serial
Out:   serial
Err:   serial
i2c: I2C3 SDA is low, start i2c recovery...
I2C3 Recovery failed, I2C1 SDA still low!!!
Net:   got MAC address from IIM: 00:04:9f:02:e2:10
FEC0 [PRIME]
Hit any key to stop autoboot:  0
Wrong Image Format for bootm command
ERROR: can't get kernel image!

mksdcard.sh内容
#!/bin/sh

# partition size in MB
BOOT_ROM_SIZE=10


# call sfdisk to create partition table
# destroy the partition table
node=$1

sfdisk --force -uM ${node} << EOF
${BOOT_ROM_SIZE},,83
EOF

使用的烧写文件都是用
./ltib --profile config/platform/imx/updater.profile --preconfig config/platform/imx/imx6q_updater.cf --continue --batch
生成的
奇怪的是u-boot.bin文件很小,只有150多k,正常SD卡启动的u-boot.bin有400多k

111.jpg (32.77 KB )

111.jpg

使用特权

评论回复
11
leifenger|  楼主 | 2014-11-25 14:19 | 只看该作者
问题解决了,mfgtool工具文档比较坑,搞了2天才领悟。
关键点是:2套u-boot.bin和uImage,各自功能不同!!!

mfgtool工具使用
1)        mfg工具:Mfgtools-Rel-4.1.0_130816_MX6Q_UPDATER
2)        修改3个配置文件:
        UICfg.ini,cfg.ini,ucl2.xml
3)        待下载文件在下面目录下mfgtools\Profiles\Linux\OS Firmware\files
4)        拨码SW6为:0011 0000(8至1)
5)        将SD卡插在SD3槽位上
6)        在OS Firmware目录下的u-boot.bin、uImage、initramfs.cpio.gz.uboot这3个文件都是下载到内存中,用来建立临时简易操作系统的;
7)        在files目录下的u-boot.bin、uImage、rootfs.tar.bz2才是真正要烧写到SD卡中的;

参考文档:mfgtools\Document\V2\Manufacturing Tool V2 Quick Start Guide.doc
          http://blog.csdn.net/shell_albert/article/details/8231856

mfgtool工具工作过程:
1、下载uboot.bin到目标机内存,应该是内存地址0x0处
2、下载uImage到目标机内存,内存地址是0x10800000
3、下载initramfs到目标机内存,内存地址是0x10C00000
4、利用以上下载的文件在目标机的内存中运行起一个简易的操作系统
5、通过向目标机发送命令在目标机上创建设备节点,用于对nand flash进行操作
6、向目标机发送脚本文件执行nand flash分区操作
7、向目标机发送uboot.bin(这次是自己编译的需要烧写的)并烧写进nand flash中。
8、向目标机发送uImage(这里是自己编译的需要烧写的)并烧写进nand flash中。
9、向目标机发送ramdisk(这里是自己编译的需要烧写的)并烧写进nand flash中。
10、刷新操作flush
11、烧录结束

ucl2.xml文件内容:
<UCL>
  <CFG>
    <STATE name="BootStrap" dev="MX6Q" vid="15A2" pid="0054"/>
          <STATE name="Updater"   dev="MSC" vid="066F" pid="37FF"/>
  </CFG>
  
  <LIST name="Sabre-SD" desc="Choose SD as media">
  
  <CMD state="BootStrap" type="boot" body="BootStrap" file ="u-boot.bin" >Loading U-boot</CMD>
        <CMD state="BootStrap" type="load" file="uImage" address="0x10800000" loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading Kernel.</CMD>
        <CMD state="BootStrap" type="load" file="initramfs.cpio.gz.uboot" address="0x10C00000" loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading Initramfs.</CMD>
        <CMD state="BootStrap" type="jump" > Jumping to OS image. </CMD>
       
        <CMD state="Updater" type="push" body="send" file="files/u-boot.bin">Sending U-Boot</CMD>
        <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk1 bs=512 seek=2 skip=2">write U-Boot to sd card</CMD>
                       
        <CMD state="Updater" type="push" body="send" file="files/uImage">Sending kernel uImage</CMD>
        <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk1 bs=512 seek=2048 conv=fsync">write kernel image to sd card</CMD>
       
        <CMD state="Updater" type="push" body="send" file="mksdcard.sh.tar">Sending partition shell</CMD>
        <CMD state="Updater" type="push" body="$ tar xf $FILE "> Partitioning...</CMD>
        <CMD state="Updater" type="push" body="$ sh mksdcard.sh /dev/mmcblk1"> Partitioning...</CMD>

        <CMD state="Updater" type="push" body="$ mkfs.ext3 -j /dev/mmcblk1p1">Formatting rootfs partition</CMD>
        <CMD state="Updater" type="push" body="$ mkdir -p /mnt/fs"/>
        <CMD state="Updater" type="push" body="$ mount -t ext3 /dev/mmcblk1p1 /mnt/fs"/>
        <CMD state="Updater" type="push" body="pipe tar  -jxv -C /mnt/fs" file="files/rootfs.tar.bz2">Sending and writting rootfs</CMD>
        <CMD state="Updater" type="push" body="frf">Finishing rootfs write</CMD>
        <CMD state="Updater" type="push" body="$ umount /mnt/fs">Unmounting rootfs partition</CMD>

  </LIST>
</UCL>

使用特权

评论回复
12
FSL_TICS_Rita| | 2014-11-25 16:25 | 只看该作者
leifenger 发表于 2014-11-25 14:19
问题解决了,mfgtool工具文档比较坑,搞了2天才领悟。
关键点是:2套u-boot.bin和uImage,各自功能不同!! ...

理解完全正确,很抱歉,我没有描述清楚~~

使用特权

评论回复
13
a151141| | 2015-4-14 13:21 | 只看该作者
本帖最后由 a151141 于 2015-4-14 13:23 编辑
leifenger 发表于 2014-11-25 14:19
问题解决了,mfgtool工具文档比较坑,搞了2天才领悟。
关键点是:2套u-boot.bin和uImage,各自功能不同!! ...

楼主,你好,在你的说明中写的是nand,
5、通过向目标机发送命令在目标机上创建设备节点,用于对nand flash进行操作
而在你的ucl2.xml给出的sd的,
<LIST name="Sabre-SD" desc="Choose SD as media">
请问楼主,有没有关于nand的编码?

使用特权

评论回复
14
我是MT| | 2015-4-14 21:18 | 只看该作者
2套u-boot.bin和uImage,各自功能不同,是这样的,我当时也是这样出错的

使用特权

评论回复
15
fhguo1990| | 2015-4-15 19:45 | 只看该作者
2套u-boot.bin和uImage,各自功能不同

使用特权

评论回复
16
mini1986| | 2015-4-19 21:17 | 只看该作者
好帖,收藏一下......

使用特权

评论回复
17
kyzf829| | 2016-4-8 23:15 | 只看该作者
好贴收藏下,学习下

使用特权

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

本版积分规则

18

主题

105

帖子

4

粉丝