内核: linux 3.14
cpu: 335x
sd卡可以在uboot使用,在以前3.2的内核也可以使用.
但是内核升级到3.14后, 在uboot也可以使用,在linux 掉电(拔掉电源)后启动也可以使用, 但linux启动后, reboot后重新启动linux则无法识别SD卡,
内核会报, error -110 whilst initialising SD card
在内核启动完成,重新插拔SD卡是可以识别.
跟踪代码发现是超时. 其次pmic是硬件控制,软件无法对sd卡部分直接掉电复位.
gaoyang9992006:
好像你的卡晶元是坏块太多了影响到了驱动程序要重新量产可以恢复不过以后也不会太稳定了会丢失数据建议不要保存重要数据了换张新卡好点------------------这只是一种可能。换个卡试试看。或者是这个内核兼容性问题,你再换个版本的内核,比如你说3.2可以用,你再试试其他的内核版本怎么样,如果其他的正常,就个别有问题,那是内核问题了。
jd.f:
回复 gaoyang9992006:
SD卡完全没有问题, 在uboot里面用sd升级系统都可以。 关于返回-110, 看起来像是总线忙, 尝试在代码里面使用SYSCTL寄存器SRA这位, 但是不奏效。
SD卡的电源无法控制, 无论驱动里面是禁止时钟然后打开,或者复位所有寄存器都没办法让resp10[0]的值满足要求。
gaoyang9992006:
回复 jd.f:
你的代码不修改,只换内核就可以正常运行?应该是这个系统内核的问题吧,还是不要追求太新的版本。找个合适的就行。