linux/drivers/mtd/nand
Stefan Agner 456930d80a mtd: nand: vf610_nfc: Freescale NFC for VF610, MPC5125 and others
This driver supports Freescale NFC (NAND flash controller) found on
Vybrid (VF610), MPC5125, MCF54418 and Kinetis K70. The driver has
been tested using 8-bit and 16-bit NAND interface on the ARM based
Vybrid SoC VF500 and VF610 platform.
parameter page reading.

Limitations:
- Untested on MPC5125 and M54418.
- DMA and pipelining not used.
- 2K pages or less.
- No chip select, one NAND chip per controller.
- No hardware ECC.

Some paths have been hand-optimized and evaluated by measurements
made using mtd_speedtest.ko on a 100MB MTD partition.

Colibri VF50
        eb write     %   eb read     %   page write      %   page read     %
rel/opt     5175           11537                4560             11039
opt         5164 -0.21     11420 -1.01          4737 +3.88       10918 -1.10
none        5113 -1.20     11352 -1.60          4490 -1.54       10865 -1.58

Colibri VF61
        eb write     %   eb read     %   page write      %   page read     %
rel/opt     5766           13096                5459             12846
opt         5883 +2.03     13064 -0.24          5561 +1.87       12802 -0.34
none        5701 -1.13     12980 -0.89          5488 +0.53       12735 -0.86

rel = using readl_relaxed/writel_relaxed in optimized paths
opt = hand-optimized by combining multiple accesses into one read/write

The measurements have not been statistically verfied, hence use them
with care. The author came to the conclusion that using the relaxed
variants of readl/writel are not worth the additional code.

Signed-off-by: Bill Pringlemeir <bpringlemeir@nbsps.com>
Tested-by: Albert ARIBAUD <albert.aribaud@3adev.fr>
Signed-off-by: Stefan Agner <stefan@agner.ch>
Reviewed-by: Alexey Klimov <klimov.linux@gmail.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
2015-09-29 13:47:58 -07:00
..
bcm47xxnflash mtd: nand: bcm47xxnflash: drop owner assignment from platform_drivers 2014-10-20 16:20:58 +02:00
brcmnand mtd: nand: Rename nand_chip .dn to .flash_node 2015-09-11 15:48:43 -07:00
gpmi-nand Common MTD: 2015-04-22 12:00:44 -07:00
ams-delta.c mtd: nand: ams-delta: fix overwritten mtd_info->owner in initialization 2015-01-15 19:33:03 -08:00
atmel_nand_ecc.h mtd: atmel_nand: add a definition for the oob reserved bytes 2015-04-05 17:47:56 -07:00
atmel_nand_nfc.h mtd: atmel_nand: check NFC busy flag by HSMC_SR instead of NFC cmd regs 2015-03-11 09:49:28 -07:00
atmel_nand.c mtd: atmel_nand: don't map the ROM table if no pmecc table offset in DT 2015-04-05 17:47:56 -07:00
au1550nd.c mtd: nand: drop owner assignment from platform_drivers 2014-10-20 16:20:58 +02:00
bf5xx_nand.c mtd: nand: drop owner assignment from platform_drivers 2014-10-20 16:20:58 +02: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: Fix kasprintf() usage 2015-06-16 18:58:47 -07:00
davinci_nand.c nand: davinci: add support for 4K page size nand devices 2015-07-20 09:58:15 -07:00
denali_dt.c mtd: nand: drop owner assignment from platform_drivers 2014-10-20 16:20:58 +02:00
denali_pci.c mtd: denali_pci: switch to dev_err() 2015-08-18 17:21:37 -07:00
denali.c mtd: nand: denali: max_banks calculation changed in revision 5.1 2015-09-29 11:44:59 -07:00
denali.h mtd: nand: denali: max_banks calculation changed in revision 5.1 2015-09-29 11:44:59 -07:00
diskonchip.c arch, drivers: don't include <asm/io.h> directly, use <linux/io.h> instead 2015-08-10 23:07:05 -04:00
docg4.c mtd: nand: drop owner assignment from platform_drivers 2014-10-20 16:20:58 +02:00
fsl_elbc_nand.c mtd: fsl_elbc_nand: Fix module autoload for OF platform driver 2015-09-28 16:19:49 -07:00
fsl_ifc_nand.c mtd: fsl_ifc_nand: Fix module autoload for OF platform driver 2015-09-28 16:19:50 -07:00
fsl_upm.c mtd: nand: drop owner assignment from platform_drivers 2014-10-20 16:20:58 +02:00
fsmc_nand.c mtd: fsmc_nand: match wait_for_completion_timeout return type 2015-05-06 23:48:04 -07:00
gpio.c MTD updates for 3.19: 2014-12-17 09:59:26 -08:00
hisi504_nand.c genirq: Remove the deprecated 'IRQF_DISABLED' request_irq() flag entirely 2015-03-05 20:53:06 +01:00
jz4740_nand.c mtd: nand: jz4740: Convert to GPIO descriptor API 2015-02-02 01:04:36 -08:00
Kconfig mtd: nand: vf610_nfc: Freescale NFC for VF610, MPC5125 and others 2015-09-29 13:47:58 -07:00
lpc32xx_mlc.c mtd: nand: drop owner assignment from platform_drivers 2014-10-20 16:20:58 +02:00
lpc32xx_slc.c mtd: nand: drop owner assignment from platform_drivers 2014-10-20 16:20:58 +02:00
Makefile mtd: nand: vf610_nfc: Freescale NFC for VF610, MPC5125 and others 2015-09-29 13:47:58 -07:00
mpc5121_nfc.c mtd: mpc5121_nfc: Fix module autoload for OF platform driver 2015-09-28 16:19:51 -07:00
mxc_nand.c mtd: mxc_nand: Fix module autoload for OF platform driver 2015-09-28 17:27:57 -07:00
nand_base.c mtd: nand: add nand_check_erased helper functions 2015-09-21 15:35:04 -07:00
nand_bbt.c mtd: remove incorrect file name 2015-05-22 10:57:46 -07:00
nand_bch.c
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 Toshiba TC58NVG0S3E to nand_ids table 2015-08-25 12:24:02 -07:00
nand_timings.c mtd: nand: Use ULL-suffix for big u64 constant 2014-08-19 11:53:09 -07:00
nandsim.c mtd: nandsim: drop null test before destroy functions 2015-09-21 17:04:50 -07:00
ndfc.c mtd: remove incorrect file name 2015-05-22 10:57:46 -07:00
nuc900_nand.c mtd: nand: drop owner assignment from platform_drivers 2014-10-20 16:20:58 +02:00
omap2.c mtd: nand: omap: drop condition with no effect 2015-02-05 19:51:08 -08:00
omap_elm.c mtd: omap_elm: Fix module alias 2015-08-18 17:57:46 -07:00
orion_nand.c mtd: orion_nand: Fix module autoload for OF platform driver 2015-09-28 16:19:34 -07:00
pasemi_nand.c mtd: nand: drop owner assignment from platform_drivers 2014-10-20 16:20:58 +02:00
plat_nand.c mtd: plat_nand: use default partition probe 2015-05-27 12:34:35 -07:00
pxa3xx_nand.c mtd: nand: pxa3xx-nand: prevent DFI bus lockup on removal 2015-09-28 17:32:19 -07:00
r852.c mtd: r852: make ecc_reg 32-bit in r852_ecc_correct 2015-07-20 10:38:25 -07:00
r852.h
s3c2410.c mtd: s3c2410: Constify platform_device_id 2015-05-07 00:13:24 -07:00
sh_flctl.c mtd: sh_flctl: remove slave_id settings for DMAEngine 2015-02-23 16:12:25 +05:30
sharpsl.c mtd: nand: drop owner assignment from platform_drivers 2014-10-20 16:20:58 +02:00
sm_common.c
sm_common.h mtd: use __packed shorthand 2014-08-19 11:53:08 -07:00
socrates_nand.c mtd: nand: drop owner assignment from platform_drivers 2014-10-20 16:20:58 +02:00
sunxi_nand.c mtd: nand: sunxi: rely on nand_dt_init initialization 2015-09-11 15:48:46 -07:00
tmio_nand.c
txx9ndfmc.c mtd: nand: drop owner assignment from platform_drivers 2014-10-20 16:20:58 +02:00
vf610_nfc.c mtd: nand: vf610_nfc: Freescale NFC for VF610, MPC5125 and others 2015-09-29 13:47:58 -07:00
xway_nand.c mtd: plat_nand: use default partition probe 2015-05-27 12:34:35 -07:00