from jianshu,If the infringement is deleted:https://www.jianshu.com/p/8b090734c53d

一、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

MTK 驱动开发---Memory 移植相关推荐

  1. 详解关于MTK驱动开发学习教程

    MTK驱动开发学习教程是本文要介绍的内容,主要是来了解MTK的驱动开发的过程,文章中很详细的讲解了这个问题,具体内容来看本文详解. 一.Charge Parameters. 1.相关文件chr_par ...

  2. MTK 驱动开发(33)---Vibrator

    Vibrator 驱动开发相对比较简单 1.配置功能及参数 vibrator0:vibrator@0 {compatible = "mediatek,vibrator";vib_t ...

  3. MTK 驱动开发(30)---Memory 移植

    一.MTK 平台和高通平台在器件选型时都要求选择已经验证过的器件,第一步需要QVL验证 1) 根据硬件原理图和EMMC 和DDR厂家的芯片资料, 确定EMMC 和DDR  64+4,型号如下: EMM ...

  4. MTK 驱动开发(29)---TP 驱动移植

    对于MTK TP驱动移植一般分为六部分: 1.硬件IO口配置: 2.TP驱动移植: 3.I2C通信: 4.中断触发: 5.数据上报: 6.虚拟按键: 硬件电路: 1.GPIO配置 打开 mediate ...

  5. MTK 驱动开发(16)---LCM 移植

    对于LCM驱动移植,一般分为三部曲: 1.硬件IO口配置: 2.确保LCM背光能够正常点亮: 3.LCM驱动移植: 硬件电路: 1.GPIO配置 打开 mediatek\dct\DrvGen.exe ...

  6. MTK 驱动开发(32)---Sensor 移植及调试2

    接续上一节,本文主要介绍驱动部分的客制化 3. Sensor Driver 的客制化 主要涉及三个方面: 1)配置 codegen.dws ---I2C 地址.eint.gpio 2)配置驱动参数 3 ...

  7. MTK 驱动开发(31)---Sensor 移植及调试1

    1.Android sensor 框架描述 1.1.Android 支持的sensor 类型 1.2.Android sensor 系统架构 1.3.HAL 和Driver的工作流程 1.4 sens ...

  8. MTK 驱动开发(28)--6797平台 TP 移植

    1. 修改kernel-3.18\arch\arm64\configs\len6797_6m_n_debug_defconfig.6797_6m_n_defconfig           CONFI ...

  9. MTK 驱动开发(31)---Sensor 移植及调试(1)

    1.Android sensor 框架描述 1.1.Android 支持的sensor 类型 1.2.Android sensor 系统架构 1.3.HAL 和Driver的工作流程 1.4 sens ...

  10. MTK 驱动开发(5)---bootloader

    1.框架 MTK 平台的启动过程经过四个模块,分别是BootRom,Preloader,LK,Kernel. 2 .bootloader到kernel启动总逻辑流程图 3.Boot ROM Boot ...

最新文章

  1. Message、Handler、Message Queue、Looper之间的关系
  2. Python脚本:聚类小分子数据集
  3. AngularJS中选择样式
  4. Java集合:HashMap源码剖析
  5. 技术QA:如何安装并启用BITS和WebDAV?
  6. Docker(十七)-修改Docker容器启动配置参数
  7. 犀牛3D造型软件Rhino 7 for Mac
  8. leetcode ----Trie/stack专题
  9. 基于 VEthernet 轻松实现 tun2socks 示例程序
  10. 如何才能更持久系列之——如何才能准确测量APP的功耗
  11. C语言墓碑上的字符,古代人墓碑上的文字都有什么讲究
  12. thinkphp ajax 跨域请求 Access-Control-Allow-Origin 完美解决
  13. '/0'和/0的区别
  14. Silvaco学习笔记(一)毕设相关
  15. The error may involve mapper.UserMapper.AddUser-Inline
  16. 五子棋游戏Java代码简单实现(含活动图和类图设计)
  17. 懈寄生---走出软件作坊:三五个人十来条枪 如何成为开发正规军(十四)
  18. Unity Editor修改分辨率
  19. excel怎样把一列中有相同的数据编同一个序号,不同商品的序号要递增
  20. JavaScript--函数--参数--事件函数的关系--形参和实参

热门文章

  1. python黑网站充值_Python黑帽子:Windows系统提权
  2. 海康摄像头SDK跨平台通用解决方案
  3. 1200兆路由器网速_办个100M的网,买一个1200M的路由器回家,网速真的会变快吗?...
  4. 如何修改Tomcat版本
  5. Halcon标定系列(3):我个人总结的“眼在手外“和“眼在手上”的心得笔记
  6. 西门子plc编程软件step 7 microwin smart下载指南
  7. ENVI5.3安装中国国产卫星支持工具
  8. 电脑文本文档怎么写html视频,如何保存网页内容?如文字、图片和视频
  9. JSON格式转换工具
  10. linux优化安装包,安装Xshell跟Linux相连并优化(付安装包)