受影响的版本
- 社区330闭源组件
受影响功能
获取flash剩余寿命,获取flash预留块坏块信息、擦写次数
变更描述
变更前
组件内特殊判断处理如下:
(1)长江存储 BPEC7C0TG1A2C3 型号,屏蔽了 VID,无法通过 mmc 接口获取正确的 VID
(2)海力士非 JPR 型号,支持获取擦写次数3000
(3)东芝、江波龙 SLEMC3F5-032G 型号,获取 NandFlash 的寿命信息的偏移为 268(不同于常规的 269)
变更后
bmc_soc组件解耦厂商 eMMC 特殊判断逻辑,NandInfo对象下新增配置属性用于各种 eMMC 芯片供应商的差异处理
"ProductName": "(新增)型号, 默认为空串",
"MaxWriteTimes": "(新增)最大擦写次数, 默认为-1,表示不支持获取擦写次数",
"LifeInfoOffset": "(新增)寿命信息在 eMMC 芯片中的偏移, 默认为 269"
建议动作
(1)保留原来长江存储的NandInfo配置,新增长江存储 BPEC7C0TG1A2C3 型号的NandInfo配置,其中包含属性ProductName
(2)保留原来海力士的NandInfo配置增加属性MaxWriteTimes(3000),新增海力士 JPR 型号的NandInfo配置,其中包括属性ProductName和MaxWriteTimes(-1)
(3)保留原来江波龙的NandInfo配置,新增江波龙 SLEMC3F5-032G 型号的NandInfo配置,其中包括属性ProductName和LifeInfoOffset(268)
(4)东芝的NandInfo配置,补充属性LifeInfoOffset(268)
新增示例
// 原来的长江存储
"NandInfo_YangtzeMemory_Base": {
"VID": 155,
"Vendor": "YangtzeMemory",
"LifeThreshold": 10,
"WriteThreshold": 12
},
//新增的长江存储BPEC7C0TG1A2C3 型号
"NandInfo_YangtzeMemory_1": {
"VID": 155,
"Vendor": "YangtzeMemory",
"ProductName": "0x585858303634", //BPEC7C0TG1A2C3 型号要配置ProductName
"LifeThreshold": 10,
"WriteThreshold": 12
},
// 原来的海力士
"NandInfo_Hynix_Base": {
"VID": 144,
"Vendor": "Hynix",
"LifeThreshold": 10,
"WriteThreshold": 12,
"MaxWriteTimes": 3000 //增加属性MaxWriteTimes
},
//新增的海力士 JPR 型号
"NandInfo_Hynix_1": {
"VID": 144,
"Vendor": "Hynix",
"ProductName": "0x68423861503E",// 海力士 JPR 型号
"LifeThreshold": 10,
"WriteThreshold": 12,
"MaxWriteTimes": -1
}
// 东芝 -- 补充LifeInfoOffset配置
"NandInfo_Toshiba": {
"VID": 17,
"Vendor": "Toshiba",
"LifeThreshold": 10,
"WriteThreshold": 12,
"LifeInfoOffset": 268
},
//新增的江波龙SLEMC3F5-032G 型号
"NandInfo_JBL3": {
"VID": 214,
"Vendor": "JBL1",
"LifeThreshold": 10,
"WriteThreshold": 12,
"ProductName": "0x433346353031", //江波龙SLEMC3F5-032G 型号
"LifeInfoOffset": 268
},
"NandInfo_JBL4": {
"VID": 127,
"Vendor": "JBL2",
"LifeThreshold": 10,
"WriteThreshold": 12,
"ProductName": "0x433346353031", //江波龙SLEMC3F5-032G 型号
"LifeInfoOffset": 268
},