Flash 兼容(Combo)的实现及现状
内容[KEYWORDS] Flash Combo;eMMC Combo;Flash兼容 [DESCRIPTION] ????Flash combo可以简单分为两个部分,一个是DRAM的combo,同一份load中兼容若干颗ID/Type/Size不同的Flash,在开机过程preloader阶段,正确识别主板上使用的,进行EMI时序的配置;另一种是ROM,根据类型,可以分为eMMC和nand,对于,因为其自带controller,且具有相对固定的分区格式:Boot1、Boot2RPMBUser region,的目的是将同一份正确下载到不同分区情况的上;nand flash上没有,需要正确的时序进行初始化,且不同page size,其存储方式不同,的目的是同一份可以实现不同上的正确存取。 ? [SOLUTION] 1)???DRAM Combo ????????因为EMI controller设计的原因,不同平台上的处理方式不同,目前71/72平台上DRAM的兼容情况及实现请参考FAQ11403?如何在MT6571/MT6572平台上兼容MCP,注意:FlashTool?版本需要更新至?SP_Flash_Tool_v5.1349.05。 ????其它平台(如82/89/92等)上的DRAM?兼容分为两种情况:MCP和Discrete Dram,有如下限制条件: A.????MCP类型的Flash?兼容,Flash ID必须各不相同; B.?????Discrete Flash和MCP Flash的兼容,要求Vendor ID(MemoryDeviceList_MTxxxx.xls中的MODE_REG5)各不相同,并且所有兼容的DRAM的类型(LPDDR2/LPDDR3)必须相同,如果有PCDDR3类型的DRAM,也不可以进行兼容; C.?????Discrete Flash和MCP Flash的兼容,Discrete eMMC的Flash ID不能和MCP中的Flash ID相同。 ????????注意:Discrete Dram的配置方式是在custom_MemoryDevice.h中配置DRAM的part number,软件中没有配置Discrete eMMC,但是Discrete eMMC的选用还是要参考Memory_Validation_List_External_Wxxxx.xlsx中Discrete eMMC页中的Flash,因为eMMC中有controller,其中有Firmware,只有选用xlsx中验证过的Flash才能保证系统正常工作。2)???ROM Combo ?????????对于上2KB/4KB page size的兼容,请参考FAQ07801 NAND Flash 2K和4K兼容。 在解释eMMC flash上的之前,先简单介绍一下eMMC Flash的架构,上有如下几个分区:User Region,前三个分区通常称为:Special Region?????????? Linux操作系统在启动过程,规定是从中获取MBR image的内容,所以MBR及其它的image都必须存储在中,preloader image存储在boot1中,如下图所示: ? 因为不同的及RPMB?分区的size可能会有所不同,为了满足必须存储在中的要求,MT6592之前的平台的做法是取所有兼容的上最大的Special region做为分区的起始地址,比如兼容了三颗的存储位置如下图所示: 的值可以查看文件MemoryDeviceList_MTxxxx.xls中的emmc_region页,同一part number,其的值是固定的;但是对于Discrete eMMC的兼容,custom_MemoryDevice.h中配置的仅表示的型号,所以无法从中获取对应的,为了处理这种情况,在文件mbr_addr.pl(KK和L版本)和cust_part_mbr.c(L版本)中设定了一个的默认值:$MBR_Start_Adress_KB,这个值需要通过使用Flashtoolmemory test进行确认并修改,如下图: ? 最终在编译过程,Ptgen.pl中通过对比max(Boot1+Boot2+RPMB)??mbr_addr.pl的默认值,将较大的值做为的起始地址,实现多个的兼容。但这种兼容方式有如下几点不足之处: A.????因为选择最大的Boot1+Boot2+RPMB的起始地址,对于部分来说会造成空间浪费; B.????的地址可能不是0x0地址,会出现地址不对齐的现象,影响操作的performance; C.????对于已经出货的机器,如果后续采用的值变大,会导致整个系统partition layout的变化,这样会影响OTA升级。 ????为了解决以上的不足,在MT6592平台及后面的新平台上,使用了新的兼容方式:使用物理地址(region,offset),在下载的时候,DA读取Flash上的位置,分别将下载到位置;将等其它地址开始的位置,如下图所示: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |