kernel-ark/include/linux/mtd
Artem Bityutskiy 8e12b474f9 mtd: nand: provision full ID support
Up until now we identified NAND chips by the 'device ID' part of the full chip
ID array, which is the second full ID array byte. However, the newest flashes
use the same device ID for chips with identical page and eraseblock sizes, but
different OOB sizes. And unfortunately, it is not clear if there is a
"standard" way to fetch the OOB size from chip's full ID array. Here is an
example:

Toshiba TC58NVG2S0F: 0x98, 0xdc, 0x90, 0x26, 0x76, 0x15, 0x01, 0x08
Toshiba TC58NVG3S0F: 0x98, 0xd3, 0x90, 0x26, 0x76, 0x15, 0x02, 0x08

The first one is a 512MiB NAND chip with 4KiB NAND pages, 256KiB eraseblock
size and 224 bytes OOB. The second one is a 1GiB NAND chip with the same page
and eraseblock sizes, but with 232 bytes OOB.

This means that we have to store full ID in our NAND flashes table in order to
distinguish between these 2.

This patch adds the 'id[8]' field to the 'struct nand_flash_dev' structure, and
it makes it to be a part of anonymous union, where the second member is a
structure containing the 'mfr_id' and 'dev_id' bytes. The union makes sure that
'mfr_id' refers the same RAM address as 'id[0]' and 'dev_id' refers the same
RAM address as 'id[1]'. The only motivation for the union is an assumption that
'type->dev_id' is more readable than 'type->id[1]'.

Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
2013-04-05 12:04:22 +01:00
..
bbm.h mtd: Better comment NAND_BBT_NO_OOB 2012-07-06 18:18:18 +01:00
blktrans.h mtd: mtd_blkdevs: Replace request handler kthread with a workqueue 2012-11-21 17:02:23 +02:00
cfi_endian.h
cfi.h
concat.h
doc2000.h mtd: diskonchip: use inline functions for DocRead/DocWrite 2012-11-16 10:57:38 +02:00
flashchip.h
fsmc.h mtd: fsmc_nand: pass the ale and cmd resource via resource 2012-11-15 15:37:47 +02:00
ftl.h
gen_probe.h
inftl.h
latch-addr-flash.h
lpc32xx_mlc.h mtd: lpc32xx_mlc: Make driver independent of AMBA DMA engine driver 2012-09-29 14:53:08 +01:00
lpc32xx_slc.h mtd: lpc32xx_slc: Make driver independent of AMBA DMA engine driver 2012-09-29 14:52:45 +01:00
map.h mtd: map: BUG() in non handled cases 2013-02-22 09:22:19 +02:00
mtd.h mtd: nand: Increase the ecc placement locations to 640 2012-11-15 15:37:48 +02:00
mtdram.h
nand_bch.h
nand_ecc.h
nand-gpio.h
nand.h mtd: nand: provision full ID support 2013-04-05 12:04:22 +01:00
ndfc.h
nftl.h
onenand_regs.h
onenand.h
partitions.h mtd: mtdparts: introduce mtd_get_device_size 2012-09-04 09:38:58 +03:00
pfow.h
physmap.h
pismo.h
plat-ram.h
qinfo.h
sh_flctl.h mtd: sh_flctl: Add DMA capabilty 2012-11-15 15:37:50 +02:00
sharpsl.h
spear_smi.h
super.h
ubi.h UBI: modify ubi_wl_flush function to clear work queue for a lnum 2012-05-21 11:34:41 +03:00
xip.h