MTK MCP FLASH 兼容设计思路

本文介绍了在MTK平台MT6225上实现AMD和INTEL MCP FLASH兼容的设计思路,包括在启动流程中获取Flash ID、设置Flash时序和配置Regions信息。通过读取Flash ID并查表匹配时序,实现不同Flash的局部兼容。讨论了在不同阶段读取Flash ID的可行性以及兼容设计中可能遇到的问题和解决方案。
摘要由CSDN通过智能技术生成

 

 

MTK MCP FLASH 兼容设计思路
系列:
最近将MTK平台MT6225的兼容设计完成了,实现了 AMD &INTEL系列的局部兼容,所谓局部兼容,即兼容的那么几个MCP可同时兼容。大致实现思路如下,仅供参考

Flash启动流程:
使用NOR FLASH 架构时,当按下POWER key,硬件就从0×00000000地址开始运行代码,此地址在没有REMAPPING时,正好为CS0片选地址,即 nor Flash0地址。做一些基本配置,如 colck ,EMI golden timming等。
要实现 FLASH兼容,必须在配置时序之前,获取FLASH的具体型号,并查表得出具体时序及Regions配置信息。

获取ID:
那么,我没应该在调用BL  INT_Config之前,将我们获取FLASH ID的代码复制到INTRAM运行,并将ID保存在CPU的寄存器中,比如DMA的src addr 和dstaddr寄存器,都是32位寄存器。获取ID后,应该返回继续初始化。

获取ID后,在函数 custom_setEMI 中设置 FLASH 的时序,那么,应该在这里建立一个 timing table,索引为FLASH ID,搜索到ID后,即可配置timing了。

配置好timing 后,应该需要再配置Regions信息,在Initialize_FDD_tables 中,还需要识别不同的FLASH driver,是AMD还是INTEL,这些都需要通过指针来选择,动态选择。

可能,还会遇到一些比较复杂的MCP,比如SIBLEY系列,操作不同的部分,都需要使用指针来区别。MTK实现中,宏很多,我们需要仔细的替换成指针实现。

实现后,运行了一段时间,没有问题的。欢迎广大MTK同仁交流。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kuanghanli/archive/2009/08/13/4443742.aspx

 

================================================================================
如何获取Nor FlashID
Nor Flash 目前主要有两个系列,一个是 AMD 另外一个就是 INTEL,其他系列的,我没有接触到,再此不讨论。

这两个系列的各自的命令集,差不多,至少,获取ID的命令集应该是一样的。针对一些厂商的Flash,可能驱动需要特别优化,延时需要特别修改等,由于获取ID , 对时序要求并不高,一般都能读取到ID的。

下面我把AMD 及 INTEL 获取 Flash ID 的命令放出,希望对大家有帮助,其实,这里写的,在 MCP的Datasheet 上都能查得。

AMD 系列
以下按照 word 来操作,byte操作方式,将偏移乘2即可
flash_base[0x0] = 0xF0; //reset Flash
flash_base[0x555] = 0xaa;
flash_base[0x2aa] = 0x55;
flash_base[0x555] = 0x90;
以上发送完成后,可以读取如下位置,获得相应的ID
AMD_MANUFACTURE_CODE = flash_base[0x0];
AMD_DEV_CODE = flash_base[0x1];
AMD_EXTDEV1_CODE = flash_base[0xe];
AMD_EXTDEV2_CODE = flash_base[0xf];

INTEL 系列
flash_base[0x0] = 0xFF;
flash_base[0x0] = 0x50;
flash_base[0x0] = 0x90;
以上发送完成后,可以读取如下位置,获得相应的ID
INTEL_MANUFACTURE_CODE = flash_base[0x0];
INTEL_DEV_CODE = flash_base[0x1];

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kuanghanli/archive/2009/08/13/4443702.aspx

 

================================================================================
不同厂家的flash,大小一样,封装一样,可以兼容。目前支持nor-flash
我说说思路;
1、首先要把mtk里面mem

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值