打印
[i.MX]

想烧进NORFLASH缺烧不进去

[复制链接]
7116|38
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
用的工具是Mfgtools-Rel-4.1.0,板子是MX6q,官方工具没有烧进norspi的语句。所以自己改写了一下。
uboot也是自己生成的,名字和路径都是对的,但是在烧写过程中到jumping to OS image这步之后就会卡住,等了一会就又回到loading U-boot。
下面贴上自己改写的ucl2.xml文件改写部分代码和程序运行日志,求大神帮忙解答下
如下:
ucl2.xml文件改写部分代码:
<LIST name="EVK-NOR" desc="Choose SPI-NOR as media">
  <CMD state="BootStrap" type="boot" body="Recovery" file="u-boot-mx6sl-sabrebygouzhe.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>

  -
[url=]-[/url] <!--  burn the uboot to SPI-NOR:     -->
  <CMD state="Updater" type="push" body="$ flash_erase /dev/mtd0 0 0">Erasing Boot partition</CMD>

  <CMD state="Updater" type="push" body="send" file="files/u-boot-mx6sl-sabrebygouzhe.bin">Sending U-Boot</CMD>

  <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mtd0 bs=512">write U-Boot to SPI-NOR</CMD>

  <CMD state="Updater" type="push" body="$ echo Update Complete!">Done</CMD>

  </LIST>


程序运行日志:
DLL version: 2.2.3
Thursday, October 30, 2014 15:33:24   Start new logging
ModuleID[2] LevelID[10]: CMyExceptionHandler thread is running
ModuleID[2] LevelID[1]: new MxHidDeviceClass
ModuleID[2] LevelID[10]: new MxHidDevice[01583868]
ModuleID[2] LevelID[10]: Device Manager thread is running
ModuleID[2] LevelID[10]: CmdOperation[0] device chagned and reset to state 0
ModuleID[2] LevelID[10]: ExecuteCommand--Boot[WndIndex:0], File is D:\Freescale\Mfgtools-Rel-4.1.0_130816_MX6Q_UPDATER\Profiles\MX6Q Linux Update\OS Firmware\u-boot-mx6sl-sabrebygouzhe.bin
ModuleID[2] LevelID[10]: ExecuteCommand--Load[WndIndex:0], File is D:\Freescale\Mfgtools-Rel-4.1.0_130816_MX6Q_UPDATER\Profiles\MX6Q Linux Update\OS Firmware\uImage, address is 0x10800000
ModuleID[2] LevelID[10]: PortMgrDlg(0)--Command Load excute successfully, retry count: 0
ModuleID[2] LevelID[10]: ExecuteCommand--Load[WndIndex:0], File is D:\Freescale\Mfgtools-Rel-4.1.0_130816_MX6Q_UPDATER\Profiles\MX6Q Linux Update\OS Firmware\initramfs.cpio.gz.uboot, address is 0x10C00000
ModuleID[2] LevelID[10]: PortMgrDlg(0)--Command Load excute successfully, retry count: 0
ModuleID[2] LevelID[10]: ExecuteCommand--Jump[WndIndex:0]
ModuleID[2] LevelID[10]: *********MxHidDevice[01583868] Jump to Ramkernel successfully!**********
ModuleID[2] LevelID[10]: CmdOperation[0], current state command has been finished and the last command is successful, so SetEvent(hDevCanDeleteEvent)
ModuleID[2] LevelID[10]: CmdOperation[0] device chagned and reset to state 0
ModuleID[2] LevelID[10]: ExecuteCommand--Boot[WndIndex:0], File is D:\Freescale\Mfgtools-Rel-4.1.0_130816_MX6Q_UPDATER\Profiles\MX6Q Linux Update\OS Firmware\u-boot-mx6sl-sabrebygouzhe.bin




相关帖子

沙发
FSL_TICS_Rita| | 2014-10-30 16:42 | 只看该作者
楼主你好,请问你使用的是哪个版本的BSP,还有板子是哪块?

使用特权

评论回复
板凳
我思故我在12345|  楼主 | 2014-10-30 17:20 | 只看该作者
本帖最后由 我思故我在12345 于 2014-10-30 17:38 编辑
FSL_TICS_Rita 发表于 2014-10-30 16:42
楼主你好,请问你使用的是哪个版本的BSP,还有板子是哪块?

板子是参考MCIMX6Q-SDB板子设计的,ddr,nor flash电路都和开发板一样的
在官网上下载的下载工具,Mfgtools-Rel-4.1.0_130816_MX6Q_UPDATER,只是把里面的xml文件改了下,uimage是用profile目录下的。uboot自己稍微改了下

使用特权

评论回复
地板
我思故我在12345|  楼主 | 2014-10-30 21:24 | 只看该作者
FSL_TICS_Rita 发表于 2014-10-30 16:42
楼主你好,请问你使用的是哪个版本的BSP,还有板子是哪块?

从官网下载的LTIB,包的名称叫L3.0.35_4.1.0_130816_source.tar.gz。编译的时候板子的型号设置的是MX6q_sabresd,uboot是2009那个版本的,我的板子中使用的还是串口uart1,但是管脚改成了SD3_DAT7和SD3_DAT6,原来开发板中使用的是CSI0_DAT10和CSI0_DAT11,所以更改了uboot源码中的<u-boot>/board/freescale/mx6q_sabresd/mx6q_sabresd.c
原:  //mxc_iomux_v3_setup_pad(MX6Q_PAD_CSI0_DAT10__UART1_TXD);
     //mxc_iomux_v3_setup_pad(MX6Q_PAD_CSI0_DAT11__UART1_RXD);
改为了://mxc_iomux_v3_setup_pad(MX6Q_PAD_SD3_DAT7__UART1_TXD);
       //mxc_iomux_v3_setup_pad(MX6Q_PAD_SD3_DAT6__UART1_RXD);

使用特权

评论回复
5
我思故我在12345|  楼主 | 2014-10-31 14:25 | 只看该作者
工程师们麻烦帮帮忙啊。。。。

使用特权

评论回复
6
FSL_TICS_Rita| | 2014-10-31 15:17 | 只看该作者
我思故我在12345 发表于 2014-10-30 17:20
板子是参考MCIMX6Q-SDB板子设计的,ddr,nor flash电路都和开发板一样的
在官网上下载的下载工具,Mfgtool ...

楼主你好,请问你使用的是i.mx6哪个系列的处理器?是i.mx6q还是i.mx6dl?

使用特权

评论回复
7
FSL_TICS_Rita| | 2014-10-31 15:20 | 只看该作者
本帖最后由 FSL_TICS_Rita 于 2014-10-31 15:22 编辑
我思故我在12345 发表于 2014-10-31 14:25
工程师们麻烦帮帮忙啊。。。。

你这里试一下将images写到SD或者emmc上,看是否正常启动。

使用特权

评论回复
8
我思故我在12345|  楼主 | 2014-10-31 16:40 | 只看该作者
FSL_TICS_Rita 发表于 2014-10-31 15:17
楼主你好,请问你使用的是i.mx6哪个系列的处理器?是i.mx6q还是i.mx6dl?

i.mx6q
这种错误常见么?
好,我去试一下

使用特权

评论回复
9
FSL_TICS_Rita| | 2014-10-31 16:57 | 只看该作者
我思故我在12345 发表于 2014-10-31 16:40
i.mx6q
这种错误常见么?
好,我去试一下

自己设计的板子,有时候会遇到一些问题,正常的。调试过程中会遇到各种问题的。
这里你先用SD卡试一下,看SD卡能否烧写OK,并启动。
有问题再联系我哈~~

使用特权

评论回复
10
FSL_TICS_Rita| | 2014-10-31 16:59 | 只看该作者
还有楼主你这里使用的i.mx6q,在ucl2.xml文件中最好是使用i.mx6q的名称而不是i.mx6sl。因为i.mx6sl是另外一款处理器。

使用特权

评论回复
11
pei84| | 2014-10-31 17:46 | 只看该作者
:)                                          

使用特权

评论回复
12
我思故我在12345|  楼主 | 2014-11-2 11:44 | 只看该作者
FSL_TICS_Rita 发表于 2014-10-31 16:57
自己设计的板子,有时候会遇到一些问题,正常的。调试过程中会遇到各种问题的。
这里你先用SD卡试一下, ...

您好,我板子是参考MCIMX6Q-SDB板子设计的,那我用LTIB编译uboot的时候时选择imx6q_sabredsd还是imx6q_sabreauto_spi-nor呢,这是跟uboot下载的位置有关吗,还是说跟用的开发板的型号有关呢?还有一个问题就是我已经改了串口的管脚配置,现在串口还是打印不出信息来,我觉得应该排除ddr的问题,因为从mfgtool可以看到可以把uboot和内核下载到内存中,但是往spi nor中烧写的时候就找不到nor了。问题有点多啊,工程师辛苦了!!!

使用特权

评论回复
13
我思故我在12345|  楼主 | 2014-11-2 16:38 | 只看该作者
试图烧进SD卡,但是出现如图片的错误。
烧写日志如下
DLL version: 2.2.3
Sunday, November 02, 2014 16:34:16   Start new logging
ModuleID[2] LevelID[10]: CMyExceptionHandler thread is running
ModuleID[2] LevelID[1]: new MxHidDeviceClass
ModuleID[2] LevelID[10]: new MxHidDevice[00F52908]
ModuleID[2] LevelID[1]: *** Error: 1, Drive: C:

ModuleID[2] LevelID[1]: *** Error: 1, Drive: D:

ModuleID[2] LevelID[1]: *** Error: 1, Drive: E:

ModuleID[2] LevelID[1]: *** Error: 1, Drive: H:

ModuleID[2] LevelID[10]: Device Manager thread is running
ModuleID[2] LevelID[10]: CmdOperation[0] device chagned and reset to state 0
ModuleID[2] LevelID[10]: ExecuteCommand--Boot[WndIndex:0], File is C:\Users\bupt\Desktop\Mfgtools-Rel-12.10.02_GA_MX6SL_UPDATER\Mfgtools-Rel-4.1.0_130816_MX6Q_UPDATER\Profiles\MX6Q Linux Update\OS Firmware\u-boot-mx6q-sabresd.bin
ModuleID[2] LevelID[10]: ExecuteCommand--Load[WndIndex:0], File is C:\Users\bupt\Desktop\Mfgtools-Rel-12.10.02_GA_MX6SL_UPDATER\Mfgtools-Rel-4.1.0_130816_MX6Q_UPDATER\Profiles\MX6Q Linux Update\OS Firmware\uImage, address is 0x10800000
ModuleID[2] LevelID[10]: PortMgrDlg(0)--Command Load excute successfully, retry count: 0
ModuleID[2] LevelID[10]: ExecuteCommand--Load[WndIndex:0], File is C:\Users\bupt\Desktop\Mfgtools-Rel-12.10.02_GA_MX6SL_UPDATER\Mfgtools-Rel-4.1.0_130816_MX6Q_UPDATER\Profiles\MX6Q Linux Update\OS Firmware\initramfs.cpio.gz.uboot, address is 0x10C00000
ModuleID[2] LevelID[10]: PortMgrDlg(0)--Command Load excute successfully, retry count: 0
ModuleID[2] LevelID[10]: ExecuteCommand--Jump[WndIndex:0]
ModuleID[2] LevelID[10]: *********MxHidDevice[00F52908] Jump to Ramkernel successfully!**********
ModuleID[2] LevelID[10]: CmdOperation[0], current state command has been finished and the last command is successful, so SetEvent(hDevCanDeleteEvent)
ModuleID[2] LevelID[10]: DeviceManager::DevChangeWnd::OnDeviceChange() - DEVICE_REMOVAL_EVT(\\?\USB#VID_15A2&PID_0054#5&425e0f2&0&7#{a5dcbf10-6530-11d2-901f-00c04fb951ed})
ModuleID[2] LevelID[10]: DeviceManager::DevChangeWnd::OnDeviceChange() - end
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_REMOVAL_EVT(\\?\USB#VID_15A2&PID_0054#5&425e0f2&0&7#{a5dcbf10-6530-11d2-901f-00c04fb951ed})
ModuleID[2] LevelID[10]: DeviceClass::FindDeviceByUsbPath--DeviceListType_Current, _devices.size: 1
ModuleID[2] LevelID[10]: DeviceClass::FindDeviceByUsbPath--DeviceListType_Current, devInstPathToFind: USB\VID_15A2&PID_0054\5&425E0F2&0&7, _deviceInstanceID: USB\VID_15A2&PID_0054\5&425E0F2&0&7
ModuleID[2] LevelID[10]: DeviceClass::FindDeviceByUsbPath--DeviceListType_Current, Find the device
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_REMOVAL_EVT,[MxHidDeviceClass] vid_15a2&pid_0054, Hub:5-Port:7
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_REMOVAL_EVT, Notify
ModuleID[2] LevelID[10]: DeviceManager::DevChangeWnd::OnDeviceChange() - DEVICE_ARRIVAL_EVT(\\?\USB#VID_066F&PID_37FF#5&425e0f2&0&7#{a5dcbf10-6530-11d2-901f-00c04fb951ed})
ModuleID[2] LevelID[10]: DeviceManager::DevChangeWnd::OnDeviceChange() - end
ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, Volume Arrive/Remove or Device Arrive/Remove
ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, m_p_usb_port is not NULL, so only refresh
ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, Volume/Device Remove
ModuleID[2] LevelID[1]: CmdOpreation[0]--set m_hDeviceRemoveEvent.
ModuleID[2] LevelID[10]: CmdOpreation[0]--WaitforEvents device remove1
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent()-DEVICE_REMOVAL_EVT, hDevCanDeleteEvent has been set
ModuleID[2] LevelID[10]: delete MxHidDevice[00F52908]
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_ARRIVAL_EVT(\\?\USB#VID_066F&PID_37FF#5&425e0f2&0&7#{a5dcbf10-6530-11d2-901f-00c04fb951ed})
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_ARRIVAL_EVT,[Msc,DiskDeviceClass] vid_066f&pid_37ff, not handled
ModuleID[2] LevelID[10]: DeviceManager::DevChangeWnd::OnDeviceChange() - VOLUME_ARRIVAL_EVT(I)
ModuleID[2] LevelID[10]: DeviceManager::DevChangeWnd::OnDeviceChange() - end
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - VOLUME_ARRIVAL_EVT(I)
ModuleID[2] LevelID[10]: VolumeDeviceClass::AddUsbDevice()  I
ModuleID[2] LevelID[10]: DeviceTypeDisk--_devices size: 1
ModuleID[2] LevelID[10]: Volume--StorageDisk, Disk->_driveNumber:2, Volume->_diskNumber:2
ModuleID[2] LevelID[10]: DeviceTypeDisk--find Disk device: 00F62300
ModuleID[2] LevelID[10]: Device::hubIndex::getmsc, return the port index is: 7
ModuleID[2] LevelID[10]: VolumeDeviceClass::AddUsbDevice() successful I add to current list, retrycount: 0
ModuleID[2] LevelID[10]: Device::hubIndex::getmsc, return the port index is: 7
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - VOLUME_ARRIVAL_EVT-Disk(I), Hub:5-Port:7
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - VOLUME_ARRIVAL_EVT, Notify
ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, Volume Arrive/Remove or Device Arrive/Remove
ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, m_p_usb_port is not NULL, so only refresh
ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, Volume/Device Arrive
ModuleID[2] LevelID[1]: CmdOpreation[0]--set m_hDeviceArriveEvent.
ModuleID[2] LevelID[10]: CmdOpreation[0]--WaitforEvents device arrive1
ModuleID[2] LevelID[10]: CmdOperation[0] device chagned and reset to state 1
ModuleID[2] LevelID[10]: ExecuteCommand--Push[WndIndex:0], Body is mknod block,mmcblk1,/dev/mmcblk1,block
ModuleID[2] LevelID[1]: PortMgrDlg(0)--MSCDevice--Command Push(no file) excute failed
ModuleID[2] LevelID[10]: CmdOperation[0], current command executed failed, so SetEvent(hDevCanDeleteEvent)
ModuleID[2] LevelID[10]: CCmdOpreation[0] thread is Closed
ModuleID[2] LevelID[10]: CCmdOpreation[0] thread is Closed
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - EVENT_KILL
ModuleID[2] LevelID[10]: CMyExceptionHandler::OnMsgExceptionEvent() - KillExceptionHandlerThread
ModuleID[2] LevelID[10]: Exception Handler thread is closed
ModuleID[2] LevelID[1]: delete MxHidDeviceClass
ModuleID[2] LevelID[10]: Device Manager thread is closed

1.png (36.62 KB )

烧写过程中出现的错误截图

烧写过程中出现的错误截图

使用特权

评论回复
14
FSL_TICS_Rita| | 2014-11-3 15:50 | 只看该作者
我思故我在12345 发表于 2014-11-2 11:44
您好,我板子是参考MCIMX6Q-SDB板子设计的,那我用LTIB编译uboot的时候时选择imx6q_sabredsd ...

楼主你好,编译时候,要选择imx6q_sabredsd,编译好以后,你在参考板的基础上修改。

使用特权

评论回复
15
FSL_TICS_Rita| | 2014-11-3 15:52 | 只看该作者
楼主你好,请问你设计的板子DDR和开发是一样的吗?

使用特权

评论回复
16
我思故我在12345|  楼主 | 2014-11-3 16:27 | 只看该作者
FSL_TICS_Rita 发表于 2014-11-3 15:52
楼主你好,请问你设计的板子DDR和开发是一样的吗?

DDR和开发板是一样的,型号,数量,和管脚都没有改变

使用特权

评论回复
17
FSL_TICS_Rita| | 2014-11-3 16:57 | 只看该作者
我思故我在12345 发表于 2014-11-3 16:27
DDR和开发板是一样的,型号,数量,和管脚都没有改变

那就是应该可以烧写的,建议你先往SD卡中或者emmc上烧写。

使用特权

评论回复
18
FSL_TICS_Rita| | 2014-11-3 16:58 | 只看该作者
我思故我在12345 发表于 2014-11-2 16:38
试图烧进SD卡,但是出现如图片的错误。
烧写日志如下
DLL version: 2.2.3

你这里往SD卡中烧写,mfgtool选项有设置正确吗?cfg.ini文件你是如何设置的?发给我看一下。

使用特权

评论回复
19
我思故我在12345|  楼主 | 2014-11-4 08:48 | 只看该作者
FSL_TICS_Rita 发表于 2014-11-3 16:58
你这里往SD卡中烧写,mfgtool选项有设置正确吗?cfg.ini文件你是如何设置的?发给我看一下。 ...

[profiles]
chip = MX6Q Linux Update

[platform]
board = SabreSD

[LIST]
name = Sabre-SD
就是这几行,想烧进norspi时候就改成另外一个自己设置的EVK-NOR。我把我的ucl2.xml文件放到附件里麻烦你给看一下

ucl2.zip (5.64 KB)

使用特权

评论回复
20
我思故我在12345|  楼主 | 2014-11-4 09:13 | 只看该作者

这个是按照系统自带的uboot烧进Sabre-SD,出现的错误

使用特权

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

本版积分规则

27

主题

318

帖子

9

粉丝