RealTek-Flash架构及使用Flash取代Eeprom方法--Part-

上传人:re****.1 文档编号:457720850 上传时间:2023-05-09 格式:DOCX 页数:10 大小:1.59MB
返回 下载 相关 举报
RealTek-Flash架构及使用Flash取代Eeprom方法--Part-_第1页
第1页 / 共10页
RealTek-Flash架构及使用Flash取代Eeprom方法--Part-_第2页
第2页 / 共10页
RealTek-Flash架构及使用Flash取代Eeprom方法--Part-_第3页
第3页 / 共10页
RealTek-Flash架构及使用Flash取代Eeprom方法--Part-_第4页
第4页 / 共10页
RealTek-Flash架构及使用Flash取代Eeprom方法--Part-_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《RealTek-Flash架构及使用Flash取代Eeprom方法--Part-》由会员分享,可在线阅读,更多相关《RealTek-Flash架构及使用Flash取代Eeprom方法--Part-(10页珍藏版)》请在金锄头文库上搜索。

1、*学习内容:1:RealTek的Flash架构。2:RealTek的Flash Page 分析。3:RealTek的Flash Page存储方式举例。 20111009*1:RealTek的Flash架构以LENOVO_LI2361D的CODE为例,此机种使用一颗2M bit的MX25L2026 FLASH 回顾20111008-MCU寻址方式及Bank概念学习.docx那份文件中看到的生成的bin文件,LENOVO_LI2361D_RTD2743PD_LG_LM230WF8.bin,Common Bank及各Bank X的大小如下所示:Common Bank最大范围为0x2BC4+8=0x2

2、BCC,(Common Bank设定范围为0x00000x2FFF)Bank0的最大范围为0xE0ED+1=0xE0EE。 (BanK X设定范围为0x30000xFFFF)Bank1的最大范围为0xBBF5+0x0133=0xBD28。Bank2的最大范围为0xF946+1=0xF947。Bank3的最大范围为0xAEDE+1=0xAEDF。RealTek的CODE中,把 64k bytes的BANK也称之为BANK,一个BANK中,又分为16个4k bytes,每个4k bytes称之为Page.2M bits的FLASH,Bank 0 Bank 3中,只有最后一个Bank(Bank 3)

3、的最后4个PAGE(即:page12page15)用来做replace eeprom使用。放大Bank 3:2:RealTek的Flash Page 分析。一:Page12Page14解析:在Realtek的Flash架构设计中,每一个Page(4k byges,除Page15外)又被细分为16X256个区块,每个区块称之为每笔资料。其中:每个Page的最后一笔资料(最后16个byte)用来指示当前Page的信息。任意一笔资料的第一个byte为此笔资料的Index,最后一个byte为这笔资料的Checksum。每个Page最多可以存储255笔(0254)资料。如下所示(Page12Page14

4、任意一个):二:Page15解析:前面已经有说过,在Realtek的Code中,Page15是一个比较特殊的Page,它在软体中的功能是唯一的:只用来存放 HDCP-KEY。Page15的MCU寻址地址为:0xF0000xFFFF,可是,Realtek的HDCP-KEY的总长度只有325个byte(包含了前5个byte-包含20个0和20个1的控制key和后320个byte-20组,每组16byte的key)。325个byte却占用了4K byte的空间是不是太浪费了?1:大部分的FLASH的擦除,只能是以4K为单位来擦除,如果放HDCP-KEY的4K有存放其它需要经常更新的数据,会把HDCP

5、-KEY擦除而不可恢复。2: Page15的除了HDCP-KEY占用的之外的那些BYTE,也无法去存放数据,因为MCU软体中已经有占用了一部分的寻址空间,用来作为特殊功能寄存器(XFR)及DDC RAM的寻址使用,即使你往Page15的另外的那些地址存资料,MCU也无法认到(因为用来寻址的地址总线被占用)。如下所示:以LENOVO_LI2361D的CODE为例。在LENOVO_LI2361D的Keil C 中,以下步骤打开对话框:从上可以看到, Off-chip Xdata memory 占用的寻址地址为以0xFB00为起始的地址,长度为0x0300的空间,即:0xFB000xFE00,因为我

6、们的Bank0Bank3使用的都是Xdata的寻址方式,而Bank0Bank2的寻址地址被用来寻找存放CODE二进制代码,所以,此处占用的Xdata是占用了Bank3的寻址地址,即它占用的是Bank3的Page15的部份地址。3:在显示器的规范中,有PC99的要求,即:当显示器在DC OFF的时候,接上显卡,显卡要有读取显示器的EDID的能力。在早期的Realte IC ,如RTD2122/RTD2120系列,它的主板上没有独立的24C02,不过它在IC内部有独立一块空间,用来与PC进行DDC的数据交换,称之为DDC RAM。 现在的Realtek IC的主板上,都是独立的24C02,在显卡的

7、微弱电力下,可以直接与PC进行DDC数据的传送,所以,已经取消了IC内部DDC RAM功能。虽然目前的IC已经Disable了DDC RAM功能,可是软体上还是有预留出DDC RAM的寻址地址,如下图所示:注:以下这个图片是以RTD2476D的IC SPEC为BASE得到的,不同IC,它的地址不一定相同。由以上图片可知, 它同样占用了Bank3的Page15的部份寻址地址,而且,与特殊功能寄存器的地址0xFB000xFE00会有部分的地址重合,这没有关系,因为目前的Realtek IC的软体,已经不需要用DDC RAM功能,DDC RAM的地址实际已经没有什么意义。由以上几点,可得,Page1

8、5的解析图如下:具体设定可以查看:3:RealTek的Flash Page存储方式举例Realtek的软体中,把Bank3的Page12Page14这三个page,分别用来存放Mode参数,Global参数,另外一个Free page,用来做data的搬运使用。具体哪个page用来存放哪种参数,是不定的,在flash的初始化的时候,page12用来存放MODE参数,page13用来存放global参数,page14用作free page。 可是,当有一个page的data存满的时候,进行data的搬运后,三个page的角色又会相应变化。在flash.h文件中,有如下定义:每个page的最后一个

9、byte存储的就是这组值中的一个,当存的是MODE DATA时,page的最后一个byte值为 0x00;当存储的是global data时,page的最后一个byte值为0x01。当某个page被用来存放mode data时,此page中的每一笔资料的16个byte又被用作如下定义,且此page的最后一个byte,存放的值为0x00,表示是mode page:第一个byte用来指示目前存储的是MODE TABLE中的哪一个mode第二/三个byte用来指示画面的H POSITION第四/五个byte用来指示画面的V POSITION第六/七个byte用来指示画面的CLOCK是多少第八个byt

10、e用来指示画面的PHASE是多少第九十五个byte用来指示画面的中心点的 H/V POSITION , CLOCK , PHASE第十六个byte用来指示这笔资料的checksum是多少举例:把Lenovo Li2361的机台,执行一次erase动作,再重新烧CODE,在flash初始化时,page12第一次充当存放mode data的角色。当PC输入的MODE设定在800x600 60HZ时,在画面auto结束后,读Flash page12的资料,可以看到,page12的起始位置0xC000,存放了一组data。这笔资料的第一个byte是0x0E = 14,表示当前存储的mode是mode

11、table中的第14组mode,如下图所示,mode table第14组mode为 _MODE_800x600_60HZ,与目前PC输入的mode完全相同。第2/3个byte用来指示此MODE的H POSITION,第2/3个byte为0x10DB,其中,第2个byte中的第一个bit用来指示此MODE是否已经有AUTO 过。为1表示已经有AUTO 过;为0表示此mode未做过auto。除去第一个bit外,byte2/3的值为:0x00DB=219,为此mode的HstartPostion.第4/5个byte用来指示此MODE的V POSTION,第4/5个byte值为0x001A=26,为此

12、mode的VstartPostion.第6/7个byte用来指示此MODE的CLOCK,第6/7个byte值为0x0420=1056,表示的是input HTotal值,有些CODE表示的是OSD看到的CLOCK值。第8个byte用来指示phase是多少,从读出来的资料可以看到,目前的phase为0x3F=63,与OSD里的资料相同,如下图:Page12的最后一笔资料,用来存储page12的一些参数信息:当某个page被用来存放global data时,此page中的每笔资料16个byte ,第一个byte一定是index ,用来指示这笔资料存放的是什么资料,最后一个byte一定是这组资料的c

13、hecksum。因为global data参数多种多样,中间的那些byte没有统一的规则。在软体中, global data的index有如下的定义:由上可知,global data数据多种多样,以最简单的6500K / 5800K / 9300K的色温值来举例,在上面的定义中,这三个色温值的index分别为 10/11/12.在flash的第一次初始化时,page13被分配用来存储global data,读 page13的值,找到第一个byte为0x0a , 0x0b, 0x0c的资料,如下图所示:与工厂菜单下的OSD看到的值完全一样,如下图所示:Page13的最后一个byte为0x01,表示此page目前存储的data为global data。Mode Data 与 Global Data数据量比较大,只能举例分析,基本的存储规则与上述相同,有时间有兴趣可以一个一个去分析。 此文件为Realtek提供flash replace eeprom PPT文档,供参考。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号