Firefly开源社区
标题:
90% 开发者都无法解决的 eMMC 错误,你遇到过吗
[打印本页]
作者:
Donlon
时间:
2022-3-5 00:07
标题:
90% 开发者都无法解决的 eMMC 错误,你遇到过吗
本帖最后由 Donlon 于 2022-3-10 20:34 编辑
之前自己给开发板编译了一个最新版本的uboot,并把uboot在Linux下通过dd命令刷到eMMC里了,但重启后不能正常开机。在串口上可以看到输出了以下的内容,是卡在了uboot SPL的界面,提示mmc初始化错误。(按找最下面一行提示说的的复位开发板也还是会出现同样的错误)
U-Boot TPL 2021.10-gd80bb749fa (Nov 10 2021 - 00:35:53)
Channel 0: DDR3, 800MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS=1 Die BW=16 Size=1024MB
Channel 1: DDR3, 800MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS=1 Die BW=16 Size=1024MB
256B stride
Trying to boot from BOOTROM
Returning to boot ROM...
U-Boot SPL 2021.10-gd80bb749fa (Nov 10 2021 - 00:35:53 +0800)
Trying to boot from MMC1
Card did not respond to voltage select! : -110
spl: mmc init failed with error: -95
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###
复制代码
在出现这个错误时,初步怀疑是新版uboot的问题,因为之前用Firefly提供的uboot都可以正常启动,而更新了之后却不行。因此,打算先进入Maskrom模式,刷回原来的uboot再继续解决问题。
接着短接eMMC的时钟并启动,将开发板连接电脑,可以在Android Tool里识别到一个Maskrom设备。随后在升级固件里选择从
https://www.t-firefly.com/doc/download/3.html
下载的 FIREFLY-RK3399-DEBIAN9-DESKTOP-GPT-20200110-1051.img,并点击升级,此时串口显示了以下信息
DDR Version 1.22 20190506
In
Channel 0: DDR3, 800MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
Channel 1: DDR3, 800MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
256B stride
ch 0 ddrconfig = 0x101, ddrsize = 0x20
ch 1 ddrconfig = 0x101, ddrsize = 0x20
pmugrf_os_reg[2] = 0x32817281, stride = 0x9
OUT
Boot1: 2019-03-14, version: 1.19
CPUId = 0x0
mmc: ERROR: SDHCI:Transfer data timeout
mmc: ERROR: SDHCI ERR:cmd:0x153a,stat:0x0
mmc: ERROR: Tuning procedure failed, falling back to fixed sampling clock
mmc: ERROR: tuning execution failed
emmc reinit
mmc: ERROR: SDHCI:Transfer data timeout
mmc: ERROR: SDHCI ERR:cmd:0x153a,stat:0x0
mmc: ERROR: Tuning procedure failed, falling back to fixed sampling clock
mmc: ERROR: tuning execution failed
emmc reinit
mmc: ERROR: SDHCI:Transfer data timeout
mmc: ERROR: SDHCI ERR:cmd:0x153a,stat:0x0
mmc: ERROR: Tuning procedure failed, falling back to fixed sampling clock
mmc: ERROR: tuning execution failed
复制代码
可以看到也有emmc的错误,同时在Android Tool里,则提示了以下错误:
下载Boot开始
下载Boot成功
等待Maskrom开始
等待Maskrom成功
测试设备开始
复制代码
此时也无法在Maskrom模式下刷固件。
另外,如果在SD卡槽插入一个刷了Linux固件的SD卡的话,在短接了eMMC的时钟的情况下,SD卡里的系统是可以正常启动的,但是启动后无法识别eMMC(/dev目录下只有一个mmcblk0,是SD卡对应的设备),在dmesg里可以找到一个
mmc1: error -110 whilst initialising MMC card
的错误
虽然以上的错误都指向eMMC,但是eMMC应该是好的,因为最前面的log是uboot打印的,而这个uboot是刷到eMMC里的,所以eMMC应该可以正常读取,但是就是不能正常启动,而且Maskrom模式下也不能正常刷固件,所以想请问一下是上面的操作有问题还是有其他的原因?
作者:
liaoya
时间:
2023-10-17 08:40
请问你后来找到解决方法了吗?
欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/)
Powered by Discuz! X3.1