SM2246闪存参数详解_第1页
SM2246闪存参数详解_第2页
SM2246闪存参数详解_第3页
SM2246闪存参数详解_第4页
SM2246闪存参数详解_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2246闪存参数详解大家都知道2246en的闪存参数是放在工具目录下FlashDB2246AAFlash.SET文件里的。由各种数字 组成,并没有任何注释,咋一看很容易被弄晕。但后来发现是可以在config文件里找到参数对应的 定义,经过这几周的慢慢摸索和反复实验对比,已经基本弄明白了其参数的定义,以及部分参数的 作用,虽然还是有不少作用不明,但已经可以在参考原厂参数的基础下改出同制程的颗粒了。分享如下:错误在所难免,也希望得到大家的补充和讨论。镁光的资料是比较全的,其颗粒datasheet、编号规则等均能从官网查询下载,因此就以常见的镁光 MT29F128G08CFAAB 为例吧:L2Gbi

2、t (Ek; ?;L74a)Hictoq, 128Gbit .3:; .MI29F12BG08CFAM 丄建川-2:,英,04,吒.辽 1. 21, 匚 46. 2, 9.丘 25:, 2.吕 2.爲 2?, 2. 100. 1, 02, d 1 0.1.兰,51, 31,工山 D.0. I. IJ. I. J. U. J. U. J. U. J. U. J. U. I .A493=HicrQrL 56Gbi-t (业.NT9F256G0JMA (L7W 25?Ghit 乜 .町2?F25?;03lJ/JlA :L7ai=JL, Al, 05, CB,忙i,爲 1. LI, JI, 0.1,

3、4096, 2, 9. 3, 256,匕 & 448,匕 0, 23, 2T, 1U0.1, 02, U. J, 0. J, 1. 52, 51, 31, U, J, U, J, 0 ,迥叽4ZZ 0.0.3 这里提一下:整个1套参数是指颗粒中1个CE的参数,和这个颗粒有多少CE没有任何关系。工具 是通过主控识别总共有多少个CE再根据这个CE的参数来计算总容量,比如intel pf29f32b08ncme2和 pf29f64b08pcme1这两个的参数就是完全一样的,2片ncme2等效1片pcme1。所以经常会有一个 颗粒被工具识别出好几个型号来,一般随便选哪个型号基本都一样的,除非参数略有不

4、同,比如jcme2 和ncme2是有点不一样的,具体会在后面讲到这个参数的时候详述。为便于解读,每个参数给予一个编号,帶号的表示这个参数非常重要,不可有错;带(Hex)的表示参 数为16进制数值。 TOC o 1-5 h z 12345673910111213 14 151617 131320 21 222324 25 26272C, 88, 04, 4B, A9, 00, 2, 21, 01, 0, 3996, 4096, N 3S 3, 256.2, & 448, 2, 0,23,27, 30, 1, 2F,99,28 29 30 31 32 3334 35 3& 37 38 39 40

5、41 42 43 44 45 4647 48 49 505152 53 540, 0, 1, 1, 21, 21, 31, 0, 0, 1, 0, 0, 80, 77, 77, 77, 77, 12, 26.77, 77, 55, 55,55,55, U1-6: *Flash id这个不用讲,大家都知道。7: *BITSPERCELL 闪存类型 1=SLC、2=MLC、3=TLC你没看错,我在支持库里找到了一些TLC的型号,镁光、三星、东芝、HY的都有,而且在工具里是可选的,比如K9ACGD8U0A:它是1ce的颗粒,常见的K9CFGY8U5A和它是一个id,理论上选它可开卡,但三星的TLC都

6、是bga316 的,我没有转接板无法开卡验证,有条件的同学可以尝试一下。镁光的是B95A制程的MT29F512G08EMCBB,可能是较新上市的,没见过。我对HY颗粒了解不多,但从参数上来看是符合TLC的判断的。& DrivingSetting (Hex)作用未知所有型号这里均为21。9: DrivingSetting2 (Hex)作用未知 所有型号这里均为01。实测8、9这两组参数我随便改为其他 数值也能开卡成功,似乎和开卡关系不大。10: Plane2作用未知所有型号这里均为011: MINIMUM_BLOCK最小块这个参数和后面一个参数有一定对应关系,如后一个为4096的话, 这里onf

7、i颗粒大都为3996,其他的颗粒各种数值都有,一般参照原厂同制程的参数即可。PS:原先以为这个参数和后一个参数的差就是ssd的op空间,但实测并没有什么关系,这里随便改 成什么数值都不影响开卡成功,也不影响开卡后容量,数值也可为0。12: *BLOCKCNTPERDIE指颗粒中每1个DIE所辖的块数,例如cfaab单个die的块数就是4096:Features Open NAND Flash Interface (ONFI) 2.2-compliant1Multiple-level cell (MI.C) technology1Organizationsize8S40 bytes B192 4

8、- 448 byes)_ Block size: 256 pages 2048K + _112K bytes)- Plane size: 2 planes x 2048 blocks per plane-Device sizerblocksi128Gb: 8152 blocks;256Gb: 16,384 blocks;512Gb: 32J8S blocks13: PRETESTMODE字面意思应该就是预测试模式,原厂这里均为2,实测改为0、1、3等也能正 常开卡,可能有些特殊颗粒需要改这里,一般参照同制程的参数。14: PRETESTMODE 13#、14#这两个参数很有意思,都是和PRET

9、ESTMODE呈对应关系,前一个为 基础值后一个为补偿值,例如cfaab这里是2,3在config里PRETESTMODE = 16*2+3 = 35。各型号2,3、 2,9、2,8各种组合都有,一般参照同制程的参数。15: StrongPageOffset直译就是“强页面偏移”作用不明,望指教。数值0-5都有,参照同制程的 参数即可。16: *PAGEPERBLOCK每块页数量 这里的cfaab就是每个块有256页。FeaturesOpen NAND Flash Interface ONFI) 2.2-compliant1Multiple-level cell MLO technoloOrg

10、anizationPag已 size x8t BF40 bies B192 + 448 bytE引-Block size: 256 pages 204BK + 112K bytes)- Plane size: 2 planes x 2048 blocks per plane -Device size: 64Gb: 4096 blocksj128G1k 8192 blocks;256Gh: 16,384 blocks;512Gb: 32,786 blocks17: *PLANENUMBER 每个 die 的 plane 数 一般大都为 2。FeaturesOpen NAND Flash Inte

11、rface (ONF1) 2.2-compliant1Multiple-level cell (MLC) technoloOrganizationsize BG40 bytes B192 + 448 byies)_ Block size: 256 pages (2048K + 112K bytes)Plane size: 2 phnes x 2048 blocks per plane-Device sizer 64 Gb: 409 6 bloc ks;128Gb: 8192 blocks256Gb: 16,384 blocks;512Gb: 32J8S blocks如图:cfaab的每个die

12、由2个plane乘以每个plane的2048个块组成总共4096个块。18: *PAGESIZE每个页大小,就是常说的4KP、8KP、16KP。19: *SPAREAREA直译“备用区”,其实指单个页的备用区大小。Features Open NAND Flash Interface (ONF1) 2.2-compliant1Multiple-level cell (MLC) technology1 Organizationsize x8: BG40 bytes B192 4- 448 byies)-Block size: 256 pages (2048K + 112K bytes)Plane

13、size: 2 planes x 2048 blocks per plane-Device sizer 64Gl): 4096 blocks;128Gb: 8192 blocks;256Gb: 16,384 blocks;512Gb: 32J8S blocks如图,镁光174a制程的颗粒,每个页由8192+备用448个字节构成。20: ECCBIT 2、3为常见数值,参照同制程的参数即可。21: EXTENDBLOCK扩展块cfaab这里数值为0, 195a等新制程颗粒这里是有数值的,参照同制程的 参数即可。22: SDRFrequency (Hex) SDR 频率23: DDRFrequen

14、cy (Hex) DDR频率 和后面的另外2个频率参数不同,这2个参数似乎和开卡关系 不大,我曾拿ncme2的参数(这里为:8F,27)强开cfaab (23,27)同步异步模式均能成功开卡。又 随意改为23,1F、23,3F也均能成功。所以这2个参数参照同制程的参数即可。24:BLOCKENDURANCE 作用未知 直译似乎是和块耐久度有关 也不直接影响开卡,常见数值30、100, 参照同制程的参数。25: *INTERNALCHIPNUM直译为“内部芯片数量”其实就是DIE数量/CE数量的比值,或者可以理 解为 1 个 ce 对应几个 die。比如一般颗粒都是2die2ce、4die4ce

15、之类的,那么这个数值就是1;又如nw593是4die2ce, nw388是8die4ce,那么这个数值就是2;有没有4:1的货呢?还真有! intel pf29f64b08qcme1就是8die2ce的奇葩,那么这里的数值就是4。26: *CMDOPT1 (Hex)作用未知常见数值为1F、2F、53、5F等,参照同制程的参数。27: READRETRYTABLE1 作用未知 参照同制程的参数。28: READRETRYTABLE2作用未知onfi阵营常见为0, toggle阵营这里各种数值都有,参照同制程的参 数。29: PWRONINTERFACE作用未知onfi阵营常见为0,toggle阵

16、营这里常见为1,参照同制程的参数。30: *FLASHINTERFACE onfi异步片这里为0;同步片这里为1; toggle(包括异步)大都为2(这个阵营 也有少量异步片这里数值为0的);参照同制程的参数。之前的帖子说的拿cfaab参数改出的cfaaa 两者唯一的区别就在这里。31:*TOSHIBASHIFT作用未知 很多颗粒包括onfi阵营的在内这里大都为1,具体参照同制程的参数。 很奇怪,看名字明显和东芝有关系,可为啥很多onfi的颗粒这里的数值也是1呢?32: ONFIDrivingSetting (Hex) 作用未知,参照同制程的参数。33: ONFIDrivingSetting2

17、 (Hex) 作用未知,参照同制程的参数。看名字和 onfi 颗粒有关,但所有颗 粒在这里两个参数都是有数值的,实测和开卡影响不大,如cfaab的21,21改为52,51开卡成功。34: FlashOutputDriving (Hex) 作用未知,参照同制程的参数。实测和开卡影响不大, cfaab 这里的 31 改为 51 开卡也能成功。35: SLCCMDPATTERN (Hex)作用未知,参照同制程的参数。大部分颗粒这里为0,部分三星TLC颗 粒这里为DA;部分镁光TLC颗粒为40;部分东芝闪迪颗粒为A2;部分HY颗粒BF、A2都有。36: R_SLCCMDPATTERN (Hex)作用未

18、知,参照同制程的参数。大部分颗粒这里为0,部分三星TLC 颗粒这里为DF;部分镁光TLC颗粒为43;部分HY颗粒为BF。个人猜想可能和SLC模式有关。37: *ISFORSM2246 数值1为可选,如果为0则在工具里找不到这个颗粒。38: VCTSUPPORT作用未知,参照同制程的参数。大部分颗粒这里为0,镁光部分TLC颗粒这里为1。39: HYNIX0PT1作用未知,参照同制程的参数。从名字来看应该和HY颗粒有点关系,事实上部分 HY颗粒这里为1,除此之外其余颗粒大都为0。40: F_OPT2 (Hex)作用未知,参照同制程的参数。常见为80, 一些新制程的常见90、D0。实测cfaab 这

19、里的 80 改为 0、 90、 D0 均不影响开卡。41: SDR_DRVSetting1_SM2246 (Hex)42: SDR_DRVSetting2_SM2246 (Hex)43: DDR_DRVSetting1_SM2246 (Hex)44: DDR_DRVSetting2_SM2246 (Hex) 这四组参数一般数值都一样,性能差点的颗粒一般 55,好点 的 77、 88,参照同制程的参数。实测改大改小不影响开卡,可能和稳定性有关。45: *SDR_FlshPLLFreq_SM2246 (Hex)闪存SDR模式下的频率,较老的型号一般为0E、0A,较新的 大都为12,实测异步模式下读

20、写性能与此有关,尽量不要乱改,有的异步片如cbaaa,这个数值+-1 都无法开卡,参照同制程的参数即可。46: *DDR_FlshPLLFreq_SM2246 (Hex)闪存DDR模式下的频率,较老的型号一般为18、1C、1E等, 较新的大都为26,实测Toggle模式和onfi同步模式下读写性能与此有关,前面提到的jcme2这里是 1F,ncme2是26,可能考虑tsop封装的电气特性不如bga,故数值趋于保守。一般实际开卡中如果遇到adj错误,可能是由于各颗粒个体差异或者pcb板子电气特性不佳造成的, 这时候可以考虑适当降低这个参数来通过开卡,如果你的颗粒是onfi同步片或toggle片,那么只要 改这里的参数,45#参数不用管,当然代价是性能降低。以前有人反映的4贴k9pfgy8u7a和16贴cjaab 开卡时 adj 错误我觉得可以尝试这个办法解决。47: 2_5Inch_DRVSetting_1 (Hex)48: 2_5Inch_DRVSetting_2 (Hex) 这两组参数的数值和规律一般和 41、 42、 43、 44 号参数一样,不 详述了。49: mSATA_DRVSetting_1 (Hex)50: mSATA_DRVSetting_2 (Hex) 这两组数值比前面两组要低一些。51: NGFF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论