Firefly开源社区

打印 上一主题 下一主题

[Linux] 90% 开发者都无法解决的 eMMC 错误,你遇到过吗

11

积分

0

威望

0

贡献

技术小白

积分
11

90% 开发者都无法解决的 eMMC 错误,你遇到过吗

发表于 2022-3-5 00:07:16      浏览:8945 | 回复:1        打印      只看该作者   [复制链接] 楼主
本帖最后由 Donlon 于 2022-3-10 20:34 编辑

之前自己给开发板编译了一个最新版本的uboot,并把uboot在Linux下通过dd命令刷到eMMC里了,但重启后不能正常开机。在串口上可以看到输出了以下的内容,是卡在了uboot SPL的界面,提示mmc初始化错误。(按找最下面一行提示说的的复位开发板也还是会出现同样的错误)

  1. U-Boot TPL 2021.10-gd80bb749fa (Nov 10 2021 - 00:35:53)
  2. Channel 0: DDR3, 800MHz
  3. BW=32 Col=10 Bk=8 CS0 Row=15 CS=1 Die BW=16 Size=1024MB
  4. Channel 1: DDR3, 800MHz
  5. BW=32 Col=10 Bk=8 CS0 Row=15 CS=1 Die BW=16 Size=1024MB
  6. 256B stride
  7. Trying to boot from BOOTROM
  8. Returning to boot ROM...

  9. U-Boot SPL 2021.10-gd80bb749fa (Nov 10 2021 - 00:35:53 +0800)
  10. Trying to boot from MMC1
  11. Card did not respond to voltage select! : -110
  12. spl: mmc init failed with error: -95
  13. SPL: failed to boot from all boot devices
  14. ### 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,并点击升级,此时串口显示了以下信息

  1. DDR Version 1.22 20190506
  2. In
  3. Channel 0: DDR3, 800MHz
  4. Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
  5. Channel 1: DDR3, 800MHz
  6. Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
  7. 256B stride
  8. ch 0 ddrconfig = 0x101, ddrsize = 0x20
  9. ch 1 ddrconfig = 0x101, ddrsize = 0x20
  10. pmugrf_os_reg[2] = 0x32817281, stride = 0x9
  11. OUT
  12. Boot1: 2019-03-14, version: 1.19
  13. CPUId = 0x0
  14. mmc: ERROR: SDHCI:Transfer data timeout
  15. mmc: ERROR: SDHCI ERR:cmd:0x153a,stat:0x0
  16. mmc: ERROR: Tuning procedure failed, falling back to fixed sampling clock
  17. mmc: ERROR: tuning execution failed
  18. emmc reinit
  19. mmc: ERROR: SDHCI:Transfer data timeout
  20. mmc: ERROR: SDHCI ERR:cmd:0x153a,stat:0x0
  21. mmc: ERROR: Tuning procedure failed, falling back to fixed sampling clock
  22. mmc: ERROR: tuning execution failed
  23. emmc reinit
  24. mmc: ERROR: SDHCI:Transfer data timeout
  25. mmc: ERROR: SDHCI ERR:cmd:0x153a,stat:0x0
  26. mmc: ERROR: Tuning procedure failed, falling back to fixed sampling clock
  27. mmc: ERROR: tuning execution failed
复制代码

可以看到也有emmc的错误,同时在Android Tool里,则提示了以下错误:

  1. 下载Boot开始
  2. 下载Boot成功
  3. 等待Maskrom开始
  4. 等待Maskrom成功
  5. 测试设备开始
复制代码

此时也无法在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模式下也不能正常刷固件,所以想请问一下是上面的操作有问题还是有其他的原因?

回复

使用道具 举报

12

积分

0

威望

0

贡献

技术小白

积分
12
发表于 2023-10-17 08:40:34        只看该作者  沙发
请问你后来找到解决方法了吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表