打印
[i.MX]

IMX6Q使用MFG工具烧写SD卡时报IO错误?

[复制链接]
4703|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
abc68jj|  楼主 | 2014-4-11 10:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
自己做了一块板子,使用IMX6Q。开始感觉SD卡读写时钟不高,所以SD卡走线较长且没有做等长要求。现在的问题是使用MFG工具通过usb向SD卡烧写uboot、kernel和文件系统时会停止,串口打印信息就是一些SD卡的IO访问错误。如果事先做好SD启动盘,在从SD卡启动就没有什么问题,能够正常进入系统。
请问各位:
1、IMX6Q 对SD卡有无走线长度限制及等长要求?有的话是多少?
2、针对上述问题,我想降低SD卡读写速度,请问在哪里可以修改SD卡读写时钟频率?如何修改?
谢谢!

相关帖子

沙发
FSL_TICS_ZJJ| | 2014-4-11 11:12 | 只看该作者
你好,你的问题已经转交给我们的I.MX工程师,他会回答你。
请耐心等待。

使用特权

评论回复
板凳
FSL_TICS_Rita| | 2014-4-14 11:09 | 只看该作者
楼主你好,关于你提出的第一个问题,IMX6Q 对SD卡有无走线长度限制及等长是没有什么要求的,普通的设计就是可以满足要求的。就是在设计的时候要注意CMD一定要加一个上拉的电阻。

使用特权

评论回复
地板
FSL_TICS_Rita| | 2014-4-14 11:11 | 只看该作者
关于你提到的第二个问题,我认为你以上出现的问题和SD卡的读写速度无关,因为SD卡的读写速度已经很慢了,不需要再降低。

使用特权

评论回复
5
FSL_TICS_Rita| | 2014-4-14 11:18 | 只看该作者
针对你帖中所述出现的通过MFGTool烧写不成功,主要原因应该是你没有根据你自己的板子编译MFGTool使用的firmware。因为你是自己design的板子,原来默认的MFGTool不支持。所以建议你编译一下重新试一次。

使用特权

评论回复
6
abc68jj|  楼主 | 2014-4-17 13:50 | 只看该作者
1、我们的设计中SD卡与ARM不在同一块PCB板上,这两块板卡是通过背板连接起来的。我大概测量了一下走线长度大概在5000-6000MIL。信号间最大不匹配长度有800mil左右。SD卡的读写时钟为50MHz。CMD线上加了10k的上拉电阻。在这种情况下,从SD卡启动总是会报错,如下:
DVFS driver module loaded
regulator_init_complete: SPKVDD: incomplete constraints, leaving on
snvs_rtc snvs_rtc.0: setting system clock to 1970-01-01 00:00:00 UTC (0)
Waiting for root device /dev/mmcblk0p1...
mmc1: new high speed SDHC card at address 1234
mmcblk0: mmc1:1234 SA08G 7.28 GiB
mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card s
tatus 0xb00
mmcblk0: retrying using single block read
mmcblk0: error -84 transferring data, sector 2, nr 6, cmd response 0x900, card s
tatus 0x0
end_request: I/O error, dev mmcblk0, sector 2
mmc1: Got data interrupt 0x0000000a even though no data operation was in progres
s.
后来看到“SPF-27392_C3.pdf”page6明确提到SD卡走线等长,所以怀疑这可能是主要问题。
2、根据我们自己的板子,已经重新编译过MFGtool 的firmware,至于烧写失败我觉得还是跟第一个问题有关,如果SD卡读写都有问题,烧写系统自然会失败。
因此,个人感觉将SD卡读写时钟降到25mhz,对于验证此问题会有很大帮助。

使用特权

评论回复
7
abc68jj|  楼主 | 2014-4-17 13:56 | 只看该作者
不一定每次都从SD卡启动失败,有时能够进入系统,但是失败的概率更高些而已。一旦从SD卡启动进入系统,无论如何操作系统运行都正常。系统下reboot若干次也不会发生启动时报SD卡io错误。错误一般都是在“Waiting for root device /dev/mmcblk0p1...”之后发生。

使用特权

评论回复
8
FSL_TICS_Rita| | 2014-4-17 14:01 | 只看该作者
abc68jj 发表于 2014-4-17 13:50
1、我们的设计中SD卡与ARM不在同一块PCB板上,这两块板卡是通过背板连接起来的。我大概测量了一下走线长度 ...

你自己重新编译完firmware后,烧写到SD卡可以正常起来么?

使用特权

评论回复
9
abc68jj|  楼主 | 2014-4-17 14:15 | 只看该作者
不管是通过MFGtool烧写还是通过制作SD卡启动盘,都有很大概率报SD卡io错误,偶尔能够进入系统,我的SD卡时金士顿的8G卡。

使用特权

评论回复
10
abc68jj|  楼主 | 2014-4-17 14:21 | 只看该作者
我在重新说明一下遇到的问题,之前的某些描述可能不准确。
1、自己重新编译了MFGtool 的固件和自己的uboot等文件,通过MFGtool烧写,会有较大概率烧写失败,错误信息就是SD卡错误。
2、通过制作好的SD卡启动盘启动时,也会有较大概率启动失败,报的错误依旧是SD卡io错误。
错误内容上面的回复中有粘贴;
我们的SD卡设计上述回复中也有说明。

使用特权

评论回复
11
abc68jj|  楼主 | 2014-4-17 14:33 | 只看该作者
我的BOOT_CFG配置中CFG1[3:2]=01;
SD speed = CFG1[3:2]
00=SDR25(HIGH)
01=SDR12(NORMAL)
10=SDR50
11=SDR104
因此在上电加载uboot时是没有SD读写错误的。
但是在uboot中没有更改SD卡读写速度,沿用的是默认的50MHz,uboot运行起来后启动内核的过程中就会有SD卡io错误出现。
SD卡在xp系统下操作都是正常的,排除卡有问题的情况。
基于以上情况,我觉得应该是板卡走线较长和走线不匹配长度较大造成的问题。不知道FSL_TICS_Rita你还有没有什么建议?

使用特权

评论回复
12
FSL_TICS_Rita| | 2014-4-21 14:30 | 只看该作者
abc68jj 发表于 2014-4-17 14:33
我的BOOT_CFG配置中CFG1[3:2]=01;
SD speed = CFG1[3:2]
00=SDR25(HIGH)

走线的话正常的走线就是可以的,我认为不是走线的问题。

使用特权

评论回复
13
FSL_TICS_Rita| | 2014-4-21 14:32 | 只看该作者
请问楼主你参照飞思卡尔哪块开发板做的?做了哪些修改?

使用特权

评论回复
14
abc68jj|  楼主 | 2014-5-6 14:39 | 只看该作者
SABRESD
应该就是走线不匹配或走线过长造成的,我在内核里将SD卡速度强制设为SDR12后,从SD2启动就没有问题了。当然这样做是有问题的,是不能从SD3/SD4启动的。这只能作为此次样板的临时解决方法了。

使用特权

评论回复
15
xuanxuan170| | 2015-12-9 16:10 | 只看该作者
学习  了   非常棒

使用特权

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

本版积分规则

6

主题

20

帖子

0

粉丝