linux-sg2042/include/linux/mtd
Kevin Cernekee b60b08b02c mtd: nand: support alternate BB marker locations on MLC
This is a slightly modified version of a patch submitted last year by
Reuben Dowle <reuben.dowle@navico.com>.  His original comments follow:

This patch adds support for some MLC NAND flashes that place the BB
marker in the LAST page of the bad block rather than the FIRST page used
for SLC NAND and other types of MLC nand.

Lifted from Samsung datasheet for K9LG8G08U0A (1Gbyte MLC NAND):
"
Identifying Initial Invalid Block(s)
All device locations are erased(FFh) except locations where the initial
invalid block(s) information is written prior to shipping. The initial
invalid block(s) status is defined by the 1st byte in the spare area.
Samsung makes sure that the last page of every initial invalid block has
non-FFh data at the column address of 2,048.
...
"

As far as I can tell, this is the same for all Samsung MLC nand, and in
fact the samsung bsp for the processor used in our project (s3c6410)
actually contained a hack similar to this patch but less portable to
enable use of their NAND parts. I discovered this problem when trying to
use a Micron NAND which does not used this layout - I wish samsung would
put their stuff in main-line to avoid this type of problem.

Currently this patch causes all MLC nand with manufacturer codes from
Samsung and ST(Numonyx) to use this alternative location, since these
are the manufactures that I know of that use this layout.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
2010-05-14 01:56:12 +01:00
..
bbm.h mtd: use bbm.h in nand.h 2009-09-24 12:54:59 -07:00
blktrans.h mtd: blktrans: allow FTL drivers to export sysfs attributes 2010-02-26 17:37:40 +00:00
cfi.h mtd: chips: use common manufacturer codes in jedec_probe() 2010-05-14 01:48:58 +01:00
cfi_endian.h
compatmac.h
concat.h mtd: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:38 -08:00
doc2000.h
flashchip.h mtd: fix a huge latency problem in the MTD CFI and LPDDR flash drivers. 2010-05-10 14:22:30 +01:00
ftl.h [MTD] Remove strange u_int32_t types from FTL 2008-12-10 14:06:42 +00:00
gen_probe.h
inftl.h
map.h mtd: suppress warnings in inline_map_read() 2010-05-14 01:52:55 +01:00
mtd.h mtd: nand: make reads using MTD_OOB_RAW affect only ECC validation 2010-02-26 18:00:08 +00:00
mtdram.h mtd: mtdram.h: checkpatch cleanup 2010-05-10 14:11:30 +01:00
nand-gpio.h
nand.h mtd: nand: support alternate BB marker locations on MLC 2010-05-14 01:56:12 +01:00
nand_ecc.h mtd: Add __nand_calculate_ecc() to NAND ECC functions 2009-11-30 09:32:19 +00:00
ndfc.h
nftl.h
onenand.h mtd: onenand: add new callback for bufferram read 2010-05-14 01:50:04 +01:00
onenand_regs.h mtd: OneNAND: multiblock erase support 2009-11-30 09:43:18 +00:00
partitions.h Nicolas Pitre has a new email address 2009-09-15 09:37:12 -07:00
pfow.h [MTD] LPDDR PFOW definition 2009-01-05 13:55:58 +01:00
physmap.h [MTD] LPDDR extended physmap driver to support LPDDR flash 2009-01-05 13:57:28 +01:00
pismo.h mtd: Really add ARM pismo support 2010-01-13 09:04:53 +00:00
plat-ram.h
pmc551.h
qinfo.h [MTD] LPDDR QINFO records definitions 2009-01-05 13:55:54 +01:00
sh_flctl.h mtd/nand/sh_flctl: Move function mtd_to_flctl to fix build failure 2010-05-12 23:24:23 +01:00
sharpsl.h [MTD] sharpsl-nand: use platform_data for model-specific values 2008-10-29 21:06:38 +03:00
super.h
ubi.h UBI: Add ubi_open_volume_path 2009-11-24 08:18:54 +02:00
xip.h