微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > MT6589/72/82换用eMMC5.0 storage device后无法正常开机

MT6589/72/82换用eMMC5.0 storage device后无法正常开机

时间:10-02 整理:3721RD 点击:
[DESCRIPTION]
近期emmc vendor陆续推出新的支援emmc 5.0的storage chip(emmc or eMCP),如果在MT6589/72/82平台上换用emmc 5.0 storage chip后发现无法正常开机,请参考[SOLUTION]部分的说明。
[KEYWORD]
emmc5.0
[SOLUTION]
换用emmc5.0后无法正常开机主要有两方面原因:
(1) 89/72/82 MSDC本身不支援emmc 5.0 spec,在linux kernel driver上也没有考虑兼容emmc5.0的storage devcie,emmc 5.0 storage device的EXT_CSD_REV[192]
的value升级为7,driver会判断为异常。通常在开机UART kernel log中会看到如下的错误提示:
[ 1.865257] (1)[5:kworker/u:0]mmc0: unrecognised EXT_CSD revision 7
[ 1.866085] (1)[5:kworker/u:0]mmc0: error -22 whilst initialising MMC card
(2) Samsung的emmc 5.0 storage device(比如KMN5X000ZM-B209)增大了boot1和boot2 area的size(均是4MB),而emmc 4.41,4.5时代所有厂商的emmc boot1+boo2+RPMB area都没有超过6MB,因此mtk的MBR partition liner start address的最大值default就被设定成6MB.
如果您在配置memory combo时,没有把新添加的emmc 5.0 storage device配置到alps\mediatek\build\tools\emigen\<PLATFORM>\MemoryDeviceList_<PLATFORM>.xls表格的“emmc_region” sheet中,那么最终计算出来的MBRstart address就仍然为6MB,由于MBR分区必须要处于User area,因此这时就会出现访问地址的offset计算错误。通常在开机uart kernel log中会看到类似如下的错误提示:
[ 3.309425] (2)[62:mmcqd/0][MSDC] msdc0 -> Address offset in USER REGION(Capacity 14912MB) is 0xffffe400 <- msdc_cal_offset() : L<3104> PID<mmcqd/0><0x3e>
[ 3.309449] (2)[62:mmcqd/0][MSDC] msdc0 -> XXX Address offset error(-7168),please checkMBR start address! <- msdc_cal_offset() : L<3106> PID<mmcqd/0><0x3e>
解决方法有两种:
a. 在alps\mediatek\build\tools\emigen\<PLATFORM>\MemoryDeviceList_<PLATFORM>.xls的“emmc_region” sheet添加新使用的这颗emmc 5.0 device的entry,并且保证数据无误,建议是直接从MTK official release的MDL表格中拷贝,或是直接使用MTK的MDL表格.
b.KK版本直接修改alps/mediatek/config/<PROJECT>/mbr_addr.pl文件中的$MBR_Start_Address_KB的值,
$MBR_Start_Address_KB = 6*1024;
修改为:
$MBR_Start_Address_KB = 20*1024;
L版本请修改
alps/device/mediatek/build/build/tools/ptgen/MT65**/mbr_addr.pl
$MBR_Start_Address_KB = 20480;
alps/kernel/arch/ARM/mach-mt65**/${PROJECT}/partition/cust_part_mbr.c
u64 MBR_START_ADDRESS_BYTE = 20480 * 1024;
关于memory combo更多的背景知识请参考"[FAQ11482]【Storage】Flash 兼容(Combo)的实现及现状"这份FAQ。
MT6592以及之后的平台由于采用了新的partition address计算方法不会存在这个问题。
如果贵司是在已经量产的旧项目上新增使用emmc 5.0 device,那么这样修改软件后,会造成新发布的软件无法为已经上市并使用非emmc 5.0 device的机器做OTA升级,对于这种情况请参考以下的说明:
第一种方案是Samsung 回厂把boot1 size 从4M resize 成2M,这样与之前一样;
第二种是MTK 帮 Samsung 提供 workaround 的方法, 需要修改客制化preloader + 客制化MDT tool来完成resize 功能,
用workaround 的方法会增加客户成本和风险:
a.需要客户在产线上多做一个下载工位,下载具有resize 功能的preloader ;
b.如果发生resize 失败,可能memory 就报废了.
MTK建议使用方案一,方案二在大规模生产时chip resize fail 损坏的风险若贵司确认要使用方案二,请先与 Samsung 谈好 fail chip 的处理方式,再反馈至CR 确认使用方案二,MTK再提供相关协助。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top