|
@@ -283,6 +283,17 @@ static void fixup_sst39vf(struct mtd_info *mtd, void *param)
|
|
|
cfi->addr_unlock2 = 0x2AAA;
|
|
|
}
|
|
|
|
|
|
+static void fixup_sst39vf_rev_b(struct mtd_info *mtd, void *param)
|
|
|
+{
|
|
|
+ struct map_info *map = mtd->priv;
|
|
|
+ struct cfi_private *cfi = map->fldrv_priv;
|
|
|
+
|
|
|
+ fixup_old_sst_eraseregion(mtd);
|
|
|
+
|
|
|
+ cfi->addr_unlock1 = 0x555;
|
|
|
+ cfi->addr_unlock2 = 0x2AA;
|
|
|
+}
|
|
|
+
|
|
|
static void fixup_s29gl064n_sectors(struct mtd_info *mtd, void *param)
|
|
|
{
|
|
|
struct map_info *map = mtd->priv;
|
|
@@ -311,6 +322,10 @@ static struct cfi_fixup cfi_nopri_fixup_table[] = {
|
|
|
{ CFI_MFR_SST, 0x234B, fixup_sst39vf, NULL, }, // SST39VF1601
|
|
|
{ CFI_MFR_SST, 0x235A, fixup_sst39vf, NULL, }, // SST39VF3202
|
|
|
{ CFI_MFR_SST, 0x235B, fixup_sst39vf, NULL, }, // SST39VF3201
|
|
|
+ { CFI_MFR_SST, 0x235C, fixup_sst39vf_rev_b, NULL, }, // SST39VF3202B
|
|
|
+ { CFI_MFR_SST, 0x235D, fixup_sst39vf_rev_b, NULL, }, // SST39VF3201B
|
|
|
+ { CFI_MFR_SST, 0x236C, fixup_sst39vf_rev_b, NULL, }, // SST39VF6402B
|
|
|
+ { CFI_MFR_SST, 0x236D, fixup_sst39vf_rev_b, NULL, }, // SST39VF6401B
|
|
|
{ 0, 0, NULL, NULL }
|
|
|
};
|
|
|
|