Le Mon, 2 Apr 2012 11:03:06 +0200, Gabriel Tisan <gabriel.tisan@xxxxxxxxx> a écrit : > Yes, Baruch I meant write support, especially ECC layout for 4K flashes. > > Actually the 4k flashes could have 128 or 218 bytes OOB. > > Could you point me to some docs about this layout ? I use a flash with > 218 bytes spare. > here is a (dirty) patch which force the NFC configuration : diff --git a/drivers/mtd/nand/nand_imx.c b/drivers/mtd/nand/nand_imx.c index 85cfbed..182a7ff 100644 --- a/drivers/mtd/nand/nand_imx.c +++ b/drivers/mtd/nand/nand_imx.c @@ -805,7 +812,7 @@ static void preset_v3(struct mtd_info *mtd) config2 |= NFC_V3_CONFIG2_PS_2048; config2 |= NFC_V3_CONFIG2_NUM_ADDR_PHASE1(addr_phases); } else if (mtd->writesize == 4096) { - config2 |= NFC_V3_CONFIG2_PS_4096; + config2 |= NFC_V3_CONFIG2_PS_4096 | 1; config2 |= NFC_V3_CONFIG2_NUM_ADDR_PHASE1(addr_phases); } else { config2 |= NFC_V3_CONFIG2_PS_512; @@ -817,13 +824,14 @@ static void preset_v3(struct mtd_info *mtd) config2 |= NFC_V3_MX51_CONFIG2_PPB( ffs(mtd->erasesize / mtd->writesize) - 6); else - config2 |= NFC_V3_MX53_CONFIG2_PPB( - ffs(mtd->erasesize / mtd->writesize) - 6); + config2 |= 0x200; /*NFC_V3_MX53_CONFIG2_PPB( + ffs(mtd->erasesize / mtd->writesize) - 6);*/ host->eccsize = get_eccsize(mtd); - if (host->eccsize == 8) +// if (host->eccsize == 8) config2 |= NFC_V3_CONFIG2_ECC_MODE_8; } - + printf("config2 : %x\n", config2); + config2 = 0x706da17A; writel(config2, NFC_V3_CONFIG2); config3 = NFC_V3_CONFIG3_NUM_OF_DEVICES(0) | @@ -835,6 +843,8 @@ static void preset_v3(struct mtd_info *mtd) if (!(chip->options & NAND_BUSWIDTH_16)) config3 |= NFC_V3_CONFIG3_FW8; + printf("config3 : %x\n", config3); + config3= 0x1a8608; writel(config3, NFC_V3_CONFIG3); writel(0, NFC_V3_DELAY_LINE); @@ -1064,7 +1074,7 @@ static int __init imxnd_probe(struct device_d *dev) host->main_area0 = host->base; host->regs = host->base + 0xe00; host->spare0 = host->base + 0x800; - host->spare_len = 16; + host->spare_len = 64; oob_smallpage = &nandv1_hw_eccoob_smallpage; oob_largepage = &nandv1_hw_eccoob_largepage; } else if (nfc_is_v3_2()) { _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox