linux/drivers/mtd
Kevin Cernekee 426c457a32 mtd: nand: extend NAND flash detection to new MLC chips
Some of the newer MLC devices have a 6-byte ID sequence in which
several field definitions differ from older chips in a manner that is
not backward compatible.  For instance:

Samsung K9GAG08U0M (5-byte sequence): ec d5 14 b6 74
4th byte, bits 1:0 encode the page size: 0=1KiB, 1=2KiB, 2=4KiB, 3=8KiB
4th byte, bits 5:4 encode the block size: 0=64KiB, 1=128KiB, ...
4th byte, bit 6 encodes the OOB size: 0=8B/512B, 1=16B/512B

Samsung K9GAG08U0D (6-byte sequence): ec d5 94 29 34 41
4th byte, bits 1:0 encode the page size: 0=2KiB, 1=4KiB, 3=8KiB, 4=rsvd
4th byte, bits 7;5:4 encode the block size: 0=128KiB, 1=256KiB, ...
4th byte, bits 6;3:2 encode the OOB size: 1=128B/page, 2=218B/page

This patch uses the new 6-byte scheme if the following conditions are
all true:

1) The ID code wraps around after exactly 6 bytes

2) Manufacturer is Samsung

3) 6th byte is zero

The patch also extends the maximum OOB size from 128B to 256B.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
2010-05-14 01:54:44 +01:00
..
chips mtd: jedec_probe: remove spaces before tabs 2010-05-14 01:49:03 +01:00
devices mtd: sst25l: fix multi-part messages with broken spi masters 2010-05-14 01:52:24 +01:00
lpddr drivers/mtd: Use kzalloc 2010-05-13 21:23:06 +01:00
maps mtd: extend physmap_of to let the device tree specify the parition probe 2010-05-14 00:32:30 +01:00
nand mtd: nand: extend NAND flash detection to new MLC chips 2010-05-14 01:54:44 +01:00
onenand mtd: add Samsung SoC OneNAND driver 2010-05-14 01:51:20 +01:00
tests drivers/mtd: Use kzalloc 2010-05-13 21:23:06 +01:00
ubi include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
afs.c mtd: afs: fix build warning 2009-09-04 09:38:14 +01:00
ar7part.c [MTD] mtdpart: Make all partition parsers return allocated array 2009-03-20 18:55:17 +00:00
cmdlinepart.c mtd: cmdlineparts: Use 64-bit format when printing a debug message. 2009-06-25 08:18:12 +01:00
ftl.c mtd: blktrans: Hotplug fixes 2010-02-26 17:05:26 +00:00
inftlcore.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-03-26 14:55:59 +00:00
inftlmount.c mtd: inftl: misplaced parenthesis in find_boot_record 2010-02-26 13:22:07 +00:00
Kconfig mtd: sm_ftl: remove CONFIG_SM_FTL_MUSEUM and make it always on 2010-03-26 15:28:59 +00:00
Makefile Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-05-10 14:32:46 +01:00
mtd_blkdevs.c mtd: blktrans: do blk_cleanup_queue when it is really safe to do so 2010-03-08 18:57:42 -08:00
mtdblock_ro.c mtd: mtdblock: test return value of add_mtd_blktrans_dev, because if can fail 2010-02-26 17:05:46 +00:00
mtdblock.c mtd: Few follow up cleanups for Smartmedia/xD support 2010-02-26 20:13:49 +00:00
mtdchar.c mtdchar: Register the full range of minor numbers 2010-02-25 12:46:04 +00:00
mtdconcat.c mtd: mtdconcat: prevent a read from eraseregions[-1] 2009-09-19 11:18:46 -07:00
mtdcore.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-05-10 14:32:46 +01:00
mtdcore.h mtd: Replace static array of devices with an idr structure 2010-02-25 11:55:14 +00:00
mtdoops.c mtd: Remove unnecessary comparisons with MAX_MTD_DEVICES 2010-02-25 11:39:09 +00:00
mtdpart.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-09-20 05:55:36 -07:00
mtdsuper.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-05-10 14:32:46 +01:00
nftlcore.c mtd: blktrans: Hotplug fixes 2010-02-26 17:05:26 +00:00
nftlmount.c [MTD] update internal API to support 64-bit device size 2008-12-10 13:37:21 +00:00
ofpart.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
redboot.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-07-11 14:36:25 +01:00
rfd_ftl.c mtd: blktrans: Hotplug fixes 2010-02-26 17:05:26 +00:00
sm_ftl.c bitops: rename for_each_bit() to for_each_set_bit(): mtd 2010-04-08 09:42:41 +01:00
sm_ftl.h mtd: Add new SmartMedia/xD FTL 2010-02-26 19:06:50 +00:00
ssfdc.c mtd: blktrans: Hotplug fixes 2010-02-26 17:05:26 +00:00