Problem with developing Samsung K9F1G08U0A MTD driver

z l zql at glomationinc.com
Thu Oct 5 14:35:00 EDT 2006


We have ARM (Cirrus Logic EP93XX) based systems
running Linux 2.6.8.1.  We are trying to add NAND
driver for Samsung K9F1G08U0A chip on the board.  We
are able to have the driver read the MTD and register
the device.  However writing to the chip using
nandwrite seem to write some bytes in the OOB area and
mark the block bad.  Checking with mtd_debug program,
the information returned as following,

mtd.type = NAND FLASH
mtd.flags = MTD_CLEAR_BITS | MTD_ERASEABLE | MTD_OOB |
MTD_ECC
mtd.size = 134217728 (128M)
mtd.erasesize = 131072 (128K)
mtd.oobblock = 2048 (2K)
mtd.oobsize = 64 
mtd.ecctype = MTD_ECC_NONE
regions = 0

The mtd.flags shows the MTD_ECC is set but the
mtd.ecctype is set to MTD_ECC_NONE.  We have the
following line in the driver code,

this->eccmode = NAND_ECC_SOFT;

Does this set the mtd.flags or set the mtd.ecctype?

What should be the right setting for the Samsung chip?

Thanks in advance.

ZL





More information about the linux-mtd mailing list