linux/drivers/mtd/nand
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
..
alauda.c
ams-delta.c
atmel_nand_ecc.h
atmel_nand.c
au1550nd.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
autcpu12.c
bcm_umi_bch.c
bcm_umi_nand.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
bf5xx_nand.c mtd: Blackfin NFC: localize MMR bit masks 2010-05-10 14:16:43 +01:00
cafe_nand.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
cmx270_nand.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
cs553x_nand.c
davinci_nand.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
denali.c mtd/nand: Fix denali build on ppc64 2010-05-13 16:12:45 +01:00
denali.h mtd/nand: Add Intel Moorestown/Denali NAND support 2010-05-13 16:12:16 +01:00
diskonchip.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
edb7312.c
fsl_elbc_nand.c
fsl_upm.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
gpio.c
h1910.c
Kconfig mtd/nand: Add Intel Moorestown/Denali NAND support 2010-05-13 16:12:16 +01:00
Makefile mtd/nand: Add Intel Moorestown/Denali NAND support 2010-05-13 16:12:16 +01:00
mpc5121_nfc.c mtd: mpc5121_nfc: Changed SVR check to allow MPC5123. 2010-05-10 14:27:16 +01:00
mxc_nand.c mtd: mxc_nand: support i.MX21 2010-05-14 01:02:53 +01:00
nand_base.c mtd: nand: extend NAND flash detection to new MLC chips 2010-05-14 01:54:44 +01:00
nand_bbt.c
nand_bcm_umi.c
nand_bcm_umi.h
nand_ecc.c
nand_ids.c
nandsim.c mtd: nandsim: make some structures anonymous 2010-05-10 14:12:06 +01:00
ndfc.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
nomadik_nand.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
nuc900_nand.c
omap2.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
orion_nand.c mtd: orion/kirkwood: add RnB line support to orion mtd driver 2010-05-14 01:04:19 +01:00
pasemi_nand.c
plat_nand.c
ppchameleonevb.c
pxa3xx_nand.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
r852.c mtd: sm_common: split smartmedia and xD table 2010-05-14 01:03:46 +01:00
r852.h
rtc_from4.c
s3c2410.c drivers/mtd/nand: Use kzalloc 2010-05-13 21:21:38 +01:00
sh_flctl.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
sharpsl.c
sm_common.c mtd: sm_common: split smartmedia and xD table 2010-05-14 01:03:46 +01:00
sm_common.h mtd: sm_common: split smartmedia and xD table 2010-05-14 01:03:46 +01:00
socrates_nand.c
spia.c
tmio_nand.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
txx9ndfmc.c