1.简介
公司有个RK3568的项目使用了三星的8GB eMMC5.1 (KLM8G1GETF-B041),但在硬件回板的时候,发现个别单板程序烧不进去,会报下载IDB失败
部分串口打印日志如下:
DDR Version V1.09 20210630 autopre-rmw+pageclose
In
ddrconfig:15
DDR4, 324MHz
BW=32 Col=10 Bk=4 BG=2 CS0 Row=16 CS=1 Die BW=16 Size=2048MB
change to: 324MHz
clk skew:0x84
PHY drv:clk:37,ca:37,DQ:37,odt:0
vrefinner:50%, vrefout:50%
dram drv:34,odt:0
change to: 528MHz
clk skew:0x84
PHY drv:clk:37,ca:37,DQ:37,odt:0
vrefinner:50%, vrefout:50%
dram drv:34,odt:0
change to: 780MHz
clk skew:0x84
PHY drv:clk:37,ca:37,DQ:37,odt:139
vrefinner:50%, vrefout:61%
dram drv:34,odt:120
change to: 1332MHz(final freq)
clk skew:0x84
PHY drv:clk:37,ca:37,DQ:37,odt:139
vrefinner:50%, vrefout:61%
dram drv:34,odt:120
autopre_rmw=1
pageclose=1
out
Boot1 Release Time: Jun 18 2021 20:07:33, version: 1.10
support nand flash type: slc
...nandc_flash_init enter...
No.1 FLASH ID:ff ff ff ff ff ff
sfc nor id: ff ff ff
sfc_nand id: ff ff ff
SD IO init 0
Set SD Clk: 200, 5
Set SD Clk: 200, 5
SDC_BusRequest: CMD=8 SDC_RESP_TIMEOUT 1747
mmc0:cmd8,20
SDC_BusRequest: CMD=5 SDC_RESP_TIMEOUT 1747
mmc0:cmd5,20
SDC_BusRequest: CMD=55 SDC_RESP_TIMEOUT 1747
mmc0:cmd55,20
SDC_BusRequest: CMD=1 SDC_RESP_TIMEOUT 1747
mmc0:cmd1,20
Set SD Clk: 200, 5
SDC_BusRequest: CMD=8 SDC_RESP_TIMEOUT 1747
mmc0:cmd8,20
SDC_BusRequest: CMD=5 SDC_RESP_TIMEOUT 1747
mmc0:cmd5,20
SDC_BusRequest: CMD=55 SDC_RESP_TIMEOUT 1747
mmc0:cmd55,20
SDC_BusRequest: CMD=1 SDC_RESP_TIMEOUT 1747
mmc0:cmd1,20
Set SD Clk: 200, 5
SDC_BusRequest: CMD=8 SDC_RESP_TIMEOUT 1747
mmc0:cmd8,20
SDC_BusRequest: CMD=5 SDC_RESP_TIMEOUT 1747
mmc0:cmd5,20
SDC_BusRequest: CMD=55 SDC_RESP_TIMEOUT 1747
mmc0:cmd55,20
SDC_BusRequest: CMD=1 SDC_RESP_TIMEOUT 1747
mmc0:cmd1,20
SdmmcInit=0 1
Emmc IO init.
EMMC_DLL_RXCLK = 0
Emmc IO init.
EMMC_DLL_RXCLK = 0
mmc_set_bus_width: 1
SetEmmcClk: 375000, 5
SetEmmcClk: 375000, 5
mmc_set_bus_width: 8
SetEmmcClk: 200000000, 1
Enable PHY CLK: 200000000
mmc: ERROR: Tuning procedure failed.
mmc: ERROR: tuning execution failed
emmc reinit
mmc_set_bus_width: 1
SetEmmcClk: 375000, 5
mmc_set_bus_width: 8
SetEmmcClk: 200000000, 1
Enable PHY CLK: 200000000
mmc: ERROR: Tuning procedure failed.
mmc: ERROR: tuning execution failed
emmc reinit
mmc_set_bus_width: 1
SetEmmcClk: 375000, 5
mmc_set_bus_width: 8
SetEmmcClk: 200000000, 1
Enable PHY CLK: 200000000
mmc: ERROR: Tuning procedure failed.
mmc: ERROR: tuning execution failed
SdmmcInit=2 1
UsbBoot ...229756
powerOn 233217
2.解决方法
在查找RK文档(部分截图如下),发现出现IDB失败,主要有以下两点引起的
a.是emmc没有焊接好
b.是不支持此款emmc
2.1 emmc没有焊接好
a.硬件排查检测,或者进行更换(更换后OK)
b.多块板子进行烧录,排除焊接问题
2.2 不支持此款emmc
需要找RK支持,更新一下emmc支持 firmware补丁
一般下载补丁文件,按照下载文档里面的readme等说明文件,进行添加即可,然后重新编译uboot,进行烧录。
如此项目下载补丁文档后,按照下列步骤添加补丁,编译新的uboot就可以了
参考:RK 3568 IDB烧录失败解决方法_KaminLuo的博客-CSDN博客_准备idb失败