大家都知道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