linux/drivers/mtd/nand
Boris BREZILLON da3bc42c1b mtd: nand: gpmi: add proper raw access support
Several MTD users (either in user or kernel space) expect a valid raw
access support to NAND chip devices.
This is particularly true for testing tools which are often touching the
data stored in a NAND chip in raw mode to artificially generate errors.

The GPMI drivers do not implemenent raw access functions, and thus rely on
default HW_ECC scheme implementation.
The default implementation consider the data and OOB area as properly
separated in their respective NAND section, which is not true for the GPMI
controller.
In this driver/controller some OOB data are stored at the beginning of the
NAND data area (these data are called metadata in the driver), then ECC
bytes are interleaved with data chunk (which is similar to the
HW_ECC_SYNDROME scheme), and eventually the remaining bytes are used as
OOB data.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Tested-by: Huang Shijie <shijie8@gmail.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
2014-12-01 00:41:50 -08:00
..
bcm47xxnflash mtd: bcm47xxnflash: replace some magic numbers 2014-09-17 23:25:03 -07:00
gpmi-nand mtd: nand: gpmi: add proper raw access support 2014-12-01 00:41:50 -08:00
ams-delta.c mtd: delete non-required instances of include <linux/init.h> 2014-03-10 22:42:22 -07:00
atmel_nand_ecc.h mtd: atmel_nand: make PMECC lookup table and offset property optional 2014-11-05 14:44:25 -08:00
atmel_nand_nfc.h mtd: atmel_nand: add NFC status error check 2014-07-21 20:02:01 -07:00
atmel_nand.c mtd: atmel_nand: replace memcpy32_toio/memcpy32_fromio with memcpy 2014-11-25 23:22:28 -08:00
au1550nd.c MIPS: Alchemy: remove au_read/write/sync 2014-07-30 13:56:34 +02:00
bf5xx_nand.c mtd: bf5xx_nand: drop no-op PM support 2014-07-02 17:42:57 -07:00
cafe_nand.c mtd: cafe_nand: drop duplicate .write_page implementation 2014-11-25 23:13:38 -08:00
cmx270_nand.c mtd: cmx270_nand: Remove unnecessary OOM messages 2014-01-03 11:22:29 -08:00
cs553x_nand.c mtd: cs553x_nand: Remove unnecessary OOM messages 2014-01-03 11:22:29 -08:00
davinci_nand.c mtd: davinci-nand: disable subpage write for keystone-nand 2014-04-30 15:26:49 -07:00
denali_dt.c mtd: denali_dt: Use devm_ioremap_resource() 2014-03-25 23:21:08 -07:00
denali_pci.c mtd: denali: Drop print of build date/time 2014-01-09 08:52:48 -08:00
denali.c mtd: denali: fix indents and other trivial things 2014-09-19 09:39:27 -07:00
denali.h mtd: denali: fix include guard and license block of denali.h 2014-09-17 23:32:30 -07:00
diskonchip.c mtd: diskonchip: mem resource name is not optional 2014-03-31 18:43:22 -07:00
docg4.c mtd: nand: refactor erase_cmd() to return chip status 2014-05-09 13:19:42 -07:00
fsl_elbc_nand.c mtd: eLBC NAND: fix subpage write support 2014-05-20 16:35:31 -07:00
fsl_ifc_nand.c fsl_ifc: Support all 8 IFC chip selects 2014-11-05 14:45:53 -08:00
fsl_upm.c drivers: clean-up prom.h implicit includes 2013-10-09 20:04:04 -05:00
fsmc_nand.c mtd: fsmc_nand: use dmaengine_terminate_all() API 2014-10-15 21:30:59 +05:30
gpio.c mtd: nand: gpio: improve comments about GPIO assisted operation 2014-11-04 23:53:07 -08:00
jz4740_nand.c mtd: jz4740_nand: Remove unnecessary OOM messages 2014-01-03 11:22:30 -08:00
Kconfig mtd: nand: gpio: improve comments about GPIO assisted operation 2014-11-04 23:53:07 -08:00
lpc32xx_mlc.c mtd: lpc32xx: drop bitflip_threshold initialization 2014-07-01 18:55:02 -07:00
lpc32xx_slc.c mtd: lpc32xx: drop bitflip_threshold initialization 2014-07-01 18:55:02 -07:00
Makefile mtd: nand: add sunxi NAND flash controller support 2014-10-29 10:08:00 -07:00
mpc5121_nfc.c mtd: delete non-required instances of include <linux/init.h> 2014-03-10 22:42:22 -07:00
mxc_nand.c mtd: mxc_nand: use __iowrite32_copy for 32 bit copy 2014-11-05 14:27:37 -08:00
nand_base.c mtd: nand: correct the comment of function nand_block_isreserved() 2014-11-28 19:59:50 -08:00
nand_bbt.c mtd: nand: don't break long print messages 2014-09-17 23:29:36 -07:00
nand_bch.c mtd: cleanup style on pr_debug messages 2011-09-11 15:02:16 +03:00
nand_ecc.c mtd: nand: add line feed to pr_err 2014-04-16 00:18:26 -07:00
nand_ids.c mtd: nand: add ATO manufacturer info 2014-11-25 20:11:12 -08:00
nand_timings.c mtd: nand: Use ULL-suffix for big u64 constant 2014-08-19 11:53:09 -07:00
nandsim.c nandsim: add id_bytes module parameter 2014-10-23 00:36:18 -07:00
ndfc.c mtd: ndfc: silence an array underflow static checker warning 2014-08-19 11:53:05 -07:00
nuc900_nand.c mtd: nuc900_nand: NULL dereference in nuc900_nand_enable() 2014-03-10 22:42:27 -07:00
omap2.c mtd: nand: omap: Fix NAND enumeration on 3430 LDP 2014-11-25 22:44:10 -08:00
omap_elm.c mtd: omap: fix mtd devices not showing up 2014-10-29 18:41:54 -07:00
orion_nand.c mtd: orion_nand: fix error code path in probe 2014-10-22 01:35:41 -07:00
pasemi_nand.c mtd: delete non-required instances of include <linux/init.h> 2014-03-10 22:42:22 -07:00
plat_nand.c mtd: plat_nand: remove redundant return value check of platform_get_resource() 2014-01-20 11:37:29 -08:00
pxa3xx_nand.c mtd: pxa3xx_nand: make the driver work on big-endian systems 2014-05-28 13:27:37 -07:00
r852.c mtd: nand: r852: correct write_buf loop bounds 2014-05-28 00:05:26 -07:00
r852.h
s3c2410.c mtd: s3c2410: Move to clk_prepare_enable/clk_disable_unprepare 2014-07-02 15:19:22 -07:00
sh_flctl.c mtd: sh_flctl: use dmaengine_terminate_all() API 2014-10-15 21:30:59 +05:30
sharpsl.c mtd: sharpsl: use dev_err() instead of printk() 2014-01-07 10:07:31 -08:00
sm_common.c mtd: nand: refactor chip->block_markbad interface 2013-08-30 16:47:52 +01:00
sm_common.h mtd: use __packed shorthand 2014-08-19 11:53:08 -07:00
socrates_nand.c MTD merge for 3.13 2013-11-14 12:31:43 +09:00
sunxi_nand.c mtd: nand: add sunxi NAND flash controller support 2014-10-29 10:08:00 -07:00
tmio_nand.c mtd: tmio_nand: Use devm_*() functions 2014-01-03 11:22:28 -08:00
txx9ndfmc.c mtd: txx9ndfmc: Remove unnecessary OOM messages 2014-01-03 11:22:30 -08:00
xway_nand.c mtd: lantiq: Add NAND support on Lantiq XWAY SoC. 2012-09-29 15:05:18 +01:00