--- a/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c @@ -392,6 +392,8 @@ static struct cfi_fixup fixup_table[] = static void cfi_fixup_major_minor(struct cfi_private *cfi, struct cfi_pri_amdstd *extp) { + // manufacturers defined in include/linux/mtd/cfi.h + if (cfi->mfr == CFI_MFR_SAMSUNG && cfi->id == 0x257e && extp->MajorVersion == '0') extp->MajorVersion = '1'; @@ -431,6 +433,9 @@ struct mtd_info *cfi_cmdset_0002(struct mtd->reboot_notifier.notifier_call = cfi_amdstd_reboot; + printk(" CFI mfr 0x%08x\n", cfi->mfr); // TODO: Is there a more general place to print this info? + printk(" CFI id 0x%08x\n", cfi->id); + if (cfi->cfi_mode==CFI_MODE_CFI){ unsigned char bootloc; __u16 adr = primary?cfi->cfiq->P_ADR:cfi->cfiq->A_ADR; @@ -448,7 +453,7 @@ struct mtd_info *cfi_cmdset_0002(struct * Valid primary extension versions are: 1.0, 1.1, 1.2, 1.3, 1.4 * see: http://cs.ozerki.net/zap/pub/axim-x5/docs/cfi_r20.pdf, page 19 * http://www.spansion.com/Support/AppNotes/cfi_100_20011201.pdf - * http://www.spansion.com/Support/Datasheets/s29ws-p_00_a12_e.pdf + * http://www.spansion.com/Support/AppNotes/CFI_Spec_AN_03.pdf */ if (extp->MajorVersion != '1' || (extp->MajorVersion == '1' && (extp->MinorVersion < '0' || extp->MinorVersion > '4'))) {