产线生产手机,出现部分手机开机定屏。刷以前的软件能正常启动到Android界面,初步怀疑是软件问题。拿到机器后,接usb,发现有usb端口,但由于是user版本,无法连接adb进行调试。直接刷成userdebug版本,机器正常启动。怀疑是客户的软件问题,让客户提供debug版本的软件,发现内核有报错信息,也就是emmc读写异常。
mmcblk0: error -84 transferring data, sector 147456, nr 512, cmd response 0x900, card status 0x0
刷成我们这边的软件,机器能正常启动,一样有报错信息。工厂那边做过交叉试验,交换好的机器和不良机器的emmc,发现不良现象也不完全是跟着emmc走。emmc原厂过来,拿单体回去分析,没发现emmc异常。所有的线索都断了。cpu厂商那边建议关闭hs400来测试,发现机器能正常启动,内核也没有报错信息。最终,他们测量了emmc的信号,发现有信号干扰(EMMC走线的过孔和VDDMEM的电源平面走在一起/走线也过长),通过加强emmc(data0..data7)驱动能力来加强抗干扰能力
emmc资料
http://www.wowotech.net/tag/emmc
http://www.wowotech.net/basic_tech/emmc_bus_protocol.html