维塔斯科技

 找回密码
 立即注册
查看: 3506|回复: 9
打印 上一主题 下一主题

花费一天整理的SM2246 闪存参数详解

[复制链接]

该用户从未签到

68

主题

462

帖子

1010

积分

金牌会员

Rank: 6Rank: 6

积分
1010
跳转到指定楼层
楼主
发表于 2016-3-29 09:35:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

只看楼主 倒序阅读 使用道具 楼主  发表于: 2015-09-13

— 本帖被 發騷友 设置为精华,作者+3000M币+5专家(2015-09-13) —


大家都知道2246en的闪存参数是放在工具目录下FlashDB\2246AA\Flash.SET 文件里的。由各种数字组成,并没有任何注释,咋一看很容易被弄晕。但后来发现是可以在config文件里找到参数对应的定义,经过这几周的慢慢摸索和反复实验对比,已经基本弄明白了其参数的定义,以及部分参数的作用,虽然还是有不少作用不明,但已经可以在参考原厂参数的基础下改出同制程的颗粒了。

分享如下:错误在所难免,也希望得到大家的补充和讨论。

镁光的资料是比较全的,其颗粒datasheet、编号规则等均能从官网查询下载,因此就以常见的镁光MT29F128G08CFAAB 为例吧:




这里提一下:整个1套参数是指颗粒中1个CE的参数,和这个颗粒有多少CE没有任何关系。工具是通过主控识别总共有多少个CE再根据这个CE的参数来计算总容量,比如intel pf29f32b08ncme2 和 pf29f64b08pcme1 这两个的参数就是完全一样的,2片ncme2等效1片pcme1。所以经常会有一个颗粒被工具识别出好几个型号来,一般随便选哪个型号基本都一样的,除非参数略有不同,比如jcme2和ncme2是有点不一样的,具体会在后面讲到这个参数的时候详述。

为便于解读,每个参数给予一个编号,带*号的表示这个参数非常重要,不可有错;带(Hex)的表示参数为16进制数值。




1-6:*Flash id 这个不用讲,大家都知道。

7:*BITSPERCELL  闪存类型 1=SLC、2=MLC、3=TLC  
你没看错,我在支持库里找到了一些TLC的型号,镁光、三星、东芝、HY的都有,而且在工具里是可选的,比如K9ACGD8U0A:




它是1ce的颗粒,常见的K9CFGY8U5A和它是一个id,理论上选它可开卡,但三星的TLC都是bga316的,我没有转接板无法开卡验证,有条件的同学可以尝试一下。
镁光的是B95A制程的MT29F512G08EMCBB,可能是较新上市的,没见过。
我对HY颗粒了解不多,但从参数上来看是符合TLC的判断的。

8:DrivingSetting    作用未知 所有型号这里均为 21(Hex)

9:DrivingSetting2   作用未知 所有型号这里均为 01(Hex)   实测8、9这两组参数我随便改为其他数值也能开卡成功,似乎和开卡关系不大。

10:Plane2  作用未知 所有型号这里均为 0


回复

使用道具 举报

该用户从未签到

51

主题

415

帖子

899

积分

高级会员

Rank: 4

积分
899
沙发
发表于 2016-3-29 09:35:44 | 只看该作者






29:PWRONINTERFACE作用未知onfi阵营常见为0,toggle阵营这里常见为1,参照同制程的参数。

30:*FLASHINTERFACE  onfi异步片这里为0;同步片这里为1;toggle(包括异步)大都为2(这个阵营也有少量异步片这里数值为0的);参照同制程的参数。之前的帖子说的拿cfaab参数改出的cfaaa两者唯一的区别就在这里。

31:*TOSHIBASHIFT  作用未知很多颗粒包括onfi阵营的在内这里大都为1,具体参照同制程的参数。很奇怪,看名字明显和东芝有关系,可为啥很多onfi的颗粒这里的数值也是1呢?

32:ONFIDrivingSetting (Hex)  作用未知,参照同制程的参数。

33:ONFIDrivingSetting2 (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)  作用未知,参照同制程的参数。大部分颗粒这里为0,部分三星TLC颗粒这里为DF;部分镁光TLC颗粒为43;部分HY颗粒为BF。个人猜想可能和SLC模式有关。

37:*ISFORSM2246  数值1为可选,如果为0则在工具里找不到这个颗粒。


38:VCTSUPPORT  作用未知,参照同制程的参数。大部分颗粒这里为0,镁光部分TLC颗粒这里为1。





回复 支持 反对

使用道具 举报

该用户从未签到

69

主题

466

帖子

1019

积分

金牌会员

Rank: 6Rank: 6

积分
1019
板凳
发表于 2016-3-29 09:35:44 | 只看该作者





39:HYNIXOPT1  作用未知,参照同制程的参数。从名字来看应该和HY颗粒有点关系,事实上部分HY颗粒这里为1,除此之外其余颗粒大都为0。

40:F_OPT2 (Hex)  作用未知,参照同制程的参数。常见为80,一些新制程的常见90、D0。实测cfaab这里的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,实测异步模式下读写性能与此有关,尽量不要乱改,有的异步片如cbaaa,这个数值+-1都无法开卡,参照同制程的参数即可。

46:*DDR_FlshPLLFreq_SM2246 (Hex)  闪存DDR模式下的频率,较老的型号一般为18、1C、1E等,较新的大都为26,实测Toggle模式和onfi同步模式下读写性能与此有关,前面提到的jcme2这里是1F,ncme2是26,可能考虑tsop封装的电气特性不如gba,故数值趋于保守。


一般实际开卡中如果遇到adj错误,可能是由于各颗粒个体差异或者pcb板子电气特性不佳造成的,这时候可以考虑适当降低这个参数来通过开卡,如果你的颗粒是onfi同步片或toggle片,那么只要改这里的参数,45#参数不用管,当然代价是性能降低。
以前有人反映的4贴k9pfgy8u7a和16贴cjaab开卡时adj错误我觉得可以尝试这个办法解决。



回复 支持 反对

使用道具 举报

该用户从未签到

47

主题

353

帖子

769

积分

高级会员

Rank: 4

积分
769
地板
发表于 2016-3-29 09:35:45 | 只看该作者


楼主大爱,收着了。

回复 支持 反对

使用道具 举报

该用户从未签到

58

主题

403

帖子

880

积分

高级会员

Rank: 4

积分
880
5#
发表于 2016-3-29 09:35:45 | 只看该作者

本帖最近评分记录:共48条评分 ,M币+173
64shandaM币 +3原創內容03-07
右走M币 +3優秀文章2015-12-20
qkwuM币 +3優秀文章2015-10-02
redseaM币 +3-2015-09-23
dooehaM币 +3優秀文章2015-09-19
duohaiouM币 +3謝謝分享2015-09-19
裤裆里有杀气M币 +3-2015-09-18
jqbfM币 +5認真發帖2015-09-18
jxzhuganweiM币 +3虽然看不懂,但你的这种精神是值得学习的。2015-09-16
千年之戀︶ㄣM币 +3-2015-09-15
12345

回复 举报



离线xielc


UID:3887注册时间2007-02-19 最后登录2016-03-28 在线时间892小时 发帖1339 搜Ta的帖子 精华0 M币774专家1 访问TA的空间加好友用道具

数码2段




发帖1339M币774专家1粉丝33加关注 发消息 只看该作者 6楼 发表于: 2015-09-13


学习了,好详尽的分析。

内容来自Android手机客户端

回复 支持 反对

使用道具 举报

该用户从未签到

48

主题

466

帖子

994

积分

高级会员

Rank: 4

积分
994
6#
发表于 2016-3-29 09:35:45 | 只看该作者




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_DRVSetting_1  (Hex)
52:NGFF_DRVSetting_2  (Hex)  这两组和上两组一般相同。
可以看到:msata和ngff的参数比2.5inch的低一些,可能是这两种pcb比2.5的布局紧凑,考虑电气特性,因此保守些。



实测选择这三种并无太大区别。

53:FlashOutputDriving_SM2246 (Hex) 作用未知,常见为0。部分东芝颗粒(DDK)这里为62;部分HY颗粒为82;镁光部分L85a,L95b颗粒为1。

54:TLCTYPE  看名字是和TLC有关,常见为0。三星TLC颗粒常见3、7;东芝TLC常见1、8;镁光TLC这里为6,有部分HY颗粒这里为5。



整个一天花在这个参数上了,看在我这么辛苦整理的份上,有分的就统统砸过来吧,在下一定笑纳。



完结撒花!累死碎叫  顺便求精、求专、求m






回复 支持 反对

使用道具 举报

该用户从未签到

65

主题

394

帖子

871

积分

高级会员

Rank: 4

积分
871
7#
发表于 2016-3-29 09:35:45 | 只看该作者


虽然我看不懂但是好像很厉害的样子M走起

回复 支持 反对

使用道具 举报

该用户从未签到

56

主题

364

帖子

804

积分

高级会员

Rank: 4

积分
804
8#
发表于 2016-3-29 09:35:46 | 只看该作者


真心的对呼噜娃说声谢谢,学习了


回复 支持 反对

使用道具 举报

该用户从未签到

55

主题

473

帖子

1021

积分

金牌会员

Rank: 6Rank: 6

积分
1021
9#
发表于 2016-3-29 09:35:46 | 只看该作者

本帖最近评分记录:共51条评分 ,M币+178 ,专家+2
hfspM币 +7原創內容03-12
xm_xxcM币 +3謝謝分享03-05
manzxqM币 +3謝謝分享2015-12-14
1988chgM币 +3-2015-11-09
81041227M币 +3技术大神2015-11-05
bbctmM币 +2認真發帖2015-09-20
heiheiheheiM币 +3優秀文章2015-09-20
549314048M币 +3優秀文章2015-09-20
edit009M币 +3技术贴2015-09-20
lzh_23M币 +3謝謝分享2015-09-19
123456


关键词: SM2246SMISSD
明艳不可方物!魅色手电精灵,最短小便携的不锈钢18650小直!(支持M币换购)  回复 举报



离线onlyu7302


UID:1707551注册时间2014-06-27 最后登录2016-03-28 在线时间871小时 发帖296 搜Ta的帖子 精华1 M币7129专家16 访问TA的空间加好友用道具

数码1段





发帖296M币7129专家16粉丝30加关注 发消息 只看该作者 1楼 发表于: 2015-09-13



继续




11:MINIMUM_BLOCK  最小块 这个参数和后面一个参数有一定对应关系,如后一个为4096,这里onfi颗粒大都为3996,其他的颗粒各种数值都有,一般参照原厂同制程的参数即可。
PS:原先以为这个参数和后一个参数的差就是ssd的 op空间,但实测并没有什么关系,这里随便改成什么数值都不影响开卡成功,也不影响开卡后容量,数值也可为0。

12:*BLOCKCNTPERDIE  指颗粒中每1个DIE所辖的块数,例如cfaab单个die的块数就是4096:




如图:cfaab的每个die 由2个plane乘以每个plane的 2048个块组成总共4096个块。


13:PRETESTMODE  字面意思应该就是预测试模式,原厂这里均为2,实测改为0、1、3等也能正常开卡,可能有些特殊颗粒需要改这里,一般参照同制程的参数。


14:PRETESTMODE   13#、14#这两个参数很有意思,都是和PRETESTMODE呈对应关系,前一个为基础值后一个为补偿值,例如cfaab这里是2,3 在config 里PRETESTMODE =16*2+3 = 35。各型号2,3、2,9、2,8各种组合都有,一般参照同制程的参数。


15:StrongPageOffset  直译就是“强页面偏移”,作用不明,望指教。数值0-5都有,参照同制程的参数即可。


16:*PAGEPERBLOCK  每块页数量这里的cfaab就是每个块有256页。





17:*PLANENUMBER 每个die的plane数  一般都为2。





18:*PAGESIZE 每个页大小,就是常说的4KP、8KP、16KP。
  
19:*SPAREAREA 直译“备用区 ”,其实指单个页的备用区大小。



如图,镁光l74a制程的颗粒,每个页由8192+备用448个字节构成。




回复 支持 反对

使用道具 举报

该用户从未签到

55

主题

399

帖子

867

积分

高级会员

Rank: 4

积分
867
10#
发表于 2016-3-29 09:35:46 | 只看该作者

本帖最近评分记录:共28条评分 ,M币+104
hfspM币 +7原創內容03-12
lzj_876M币 +3優秀文章01-03
manzxqM币 +3謝謝分享2015-12-14
zhangmin0909M币 +3-2015-09-22
549314048M币 +3-2015-09-20
duohaiouM币 +3原創內容2015-09-19
裤裆里有杀气M币 +3-2015-09-18
灰大狼M币 +3看不懂,但是得顶啊!!技术资料2015-09-17
千年之戀︶ㄣM币 +3-2015-09-15
whgfM币 +3这个整理难度太大了!2015-09-14
123

回复 举报



离线onlyu7302


UID:1707551注册时间2014-06-27 最后登录2016-03-28 在线时间871小时 发帖296 搜Ta的帖子 精华1 M币7129专家16 访问TA的空间加好友用道具

数码1段





发帖296M币7129专家16粉丝30加关注 发消息 只看该作者 2楼 发表于: 2015-09-13



继续



20:ECCBIT  2、3为常见数值,参照同制程的参数即可。


21:EXTENDBLOCK 扩展块 cfaab这里数值为0,l95a等新制程颗粒这里是有数值的,参照同制程的参数即可。

22:SDRFrequency (Hex)  SDR频率

23:DDRFrequency (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之类的,那么这个数值就是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阵营这里各种数值都有,参照同制程的参数。



回复 支持 反对

使用道具 举报

发表回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

    移动客户端:
    关注我们:
  • 手机客户端:
  • 安卓版
  • 扫描二维码下载

Archiver|手机版|河北维塔斯科技有限公司 ( 冀ICP备16008275号 )

快速回复 返回顶部 返回列表