一、MTK 平台和高通平台在器件选型时都要求选择已经验证过的器件,第一步需要QVL验证
1) 根据硬件原理图和EMMC 和DDR厂家的芯片资料, 确定EMMC 和DDR 64+4,型号如下:
EMMC: SamsungKLMCG4JETD_B041
DDR: H9CKNNNDATMUPR_NUH
2)、到MTK 网站
https://onlinesso.mediatek.com/qvl/_layouts/15/mol/qvl/ext/QVLHomeExternal.aspx?FilterPlatform=y 进行QVL 验证。
产品: Phone
器件: Memory
类型: 可以选择分体式或一体化的
平台: 6797(自己项目的芯片)
导出 memory.xlsx,确认所选器件已经 在列表中。
EMMC: SamsungKLMCG4JETD_B041 153-FBGA eMMC 64GB
DDR: H9CKNNNDATMUPR_NUH 256-FBGA LPDDR3 32Gb
二、通用
1. 查看修改 DDR
vendor\mediatek\proprietary\bootable\bootloader\preloader\custom\6797_6m_n\inc\custom_MemoryDevice.h
/*64+4*/
#define BOARD_ID MT6797_EVB
#define CS_PART_NUMBER[0] H9CKNNNDATMUPR---已经有
#define CS_PART_NUMBER[1] H9CKNNNCPTMRPR
#define CS_PART_NUMBER[2] K3QF6F60AM
#define CS_PART_NUMBER[3] K3QF4F40BM
#define CS_PART_NUMBER[4] EDFP164A3PD
#define CS_PART_NUMBER[5] MT52L512M64D4GN
#endif /* __CUSTOM_MEMORYDEVICE__ */
2. 检查MemoryDeviceList_MT6737M.xls里是否有该flash
vendor\mediatek\proprietary\bootable\bootloader\preloader\tools\emigen\MT6797\MemoryDeviceList_MT6797.xls
list里面要有custom_MemoryDevice.h里用到的emmc
5. 如果MemoryDeviceList_MT6797.xls 中没有,则需要加入对应的器件
4. out目录查看编译的flash型号,及DDR时序
// 编译时会调用emigen,emigen.pl脚本会解析MemoryDeviceList_MT6797.xls生成custom_emi.c
out\target\product\MT6797\obj\PRELOADER_OBJ\inc\custom_emi.h
四、修改DDR时序
时序示例:
Vendor
Part Number
Type
Density(Mb) Board ID
NAND/eMMC ID FW ID Nand Page Size
MT6797
五、修改DDR频率 - 需要关闭DVFS
alps\vendor\mediatek\proprietary\bootable\bootloader\preloader\platform\mt6797\src\drivers\pll2.c
void mt_pll_post_init(void)
六、修改DDR电压
alps\vendor\mediatek\proprietary\bootable\bootloader\preloader\platform\mt6797\src\drivers\emi.c
七、打开DDR重新校验 - 使每次回复出厂设置后DDR重新校验
八、附件:MTK 平台QVL 验证时提醒
1. 下载MDL及ETT bin档案,请至查讯表格最左边Attachments栏位点选档名下载。旧平台显示Qulified但是查询不到附件的,请在Step2附件下载MTK_MVG_Release查询。
2. MT6763/63T平台只支持LPDDR4X不支持LPDDR4,请采用LPDDR4X的memory请务必加上1个critical patch:ALPS03539337。
3. 在MT6735/35m/37/37m/53/37T系列平台适配nanya DRAM请参考FQA18273修改,否则有重启风险;在MT6580/70系列平台适配nanya DRAM请参考FAQ20089修改,否则有重启风险。
4. 从W1701开始,MT6582、MT6592,MT6580,MT6735/35m/37/37m的Memory验证,只到Timing ready阶段,只提供时序和ETT bin,不再做完整的测试。
5. Tohsiba 24nm NAND产品在MT6572平台上需要使用8 bit ECC算法,NAND id 需要7byte,spare size需要256 Byte。包含KSLCGBL2GA2H2A、KSLCGBL2RA2H2A、KTN0405CS_THT1、KTN0403CS_TCR1、MD5N04G02GSD2CRK、KSLCGBL2SA5H2A。配置不对有不开机的风险,请一定要使用QVLnew上release的版本。
6. Tohsiba 24nm NAND产品在MT6571平台上需要使用8 bit ECC算法,NAND id 需要7byte,spare size需要224 Byte。包括KTN0403CS_TCR1、KTN0405CS_THT1、KSLCGBL2RA2H2A、KSLCGBL2SA5H2A。配置不对有不开机的风险,请一定要使用QVLnew上release的版本。
7. MT6571/MT6572平台使用GB或JB版本的软件,并且DRAM容量在8Gb以上(含),需要上patch ALPS01676141。
8. MT6752和MT6732共用相同的ETT bin和MDL,MT6752的项目请同时查找MT6732的memory!
9. 对于Hynix eMMC5.0,0x03版本的FW不支持cache功能,0x06版本的FW有可靠性问题,有概率性的出现在开机阶段无限重启的情况。请注意,MP一定不能用0x06版的eMMC!当前Hynix正在准备新的一版FW,一修复以上可靠性问题。
10. H9TP64A8JDMCPR_KGM有批次性存在bit flip风险,请不要使用Lot number(IC上左下角一行)为MGR0Y93Q、MGOC289RQ、MGOZ367Q、MGOE072QC、MGOC251QC、MGOE072QD的批次!
11. 6572、6582、6592、6752、6732、6735、6735M、6753、6753T、6580平台搭载eMMC 5.1的时候请上patch ALPS02216993,否则无法开机。
12. Leahkinn/GCAI 的eMMC FW有bug,低概率性待机之后无法唤醒,需要保持eMMC的Vcc常开;保持Vcc常开的修改方法请参考与MDL一同release的How to keep eMMC VCC always power on.pdf 。
13. MT29TZZZ8D5BKFAH_125W_95K在Android M 上无法开机,请参考QVL上附件中的MT29TZZZ8D5BKFAH_125W_95K在Android M上的workaround solution.pdf,并按要求修改。
14. Hynix H9TP32A4GDDCPR_KGM 0x01版本FW有寿命问题,使用寿命只有3~6个月,请和Hynix确认,必须用0x02版FW的H9TP32A4GDDCPR_KG