linux/drivers/mtd
Josh Wu 6054d4d563 mtd: atmel_nand: enable Nand Flash Controller (NFC) write via sram
This patch enable writing nand flash via NFC SRAM. It will minimize the CPU
overhead. The SRAM write only support ECC_NONE and ECC_HW with PMECC.

To enable this NFC write by SRAM feature, you can add a string in dts under
NFC driver node.

This driver has been tested on SAMA5D3X-EK with JFFS2, YAFFS2, UBIFS and
mtd-utils.

Here is part of mtd_speedtest (writing test) result, compare with non-NFC
writing, it reduces %65 cpu load with loss %12 speed.

- commands use to test:
  # insmod /mnt/mtd_speedtest.ko dev=2 &
  # top -n 30 -d 1 | grep speedtest

- test result:
=================================================
mtd_speedtest: MTD device: 2
mtd_speedtest: MTD device size 41943040, eraseblock size 131072, page size 2048, count of eraseblocks 320, pages per eraseblock 64, OOB size 64
mtd_speedtest: testing eraseblock write speed
  509   495 root     D     1164   0%   7% insmod /mnt/mtd_speedtest.ko dev=2
  509   495 root     D     1164   0%   8% insmod /mnt/mtd_speedtest.ko dev=2
  509   495 root     R     1164   0%   5% insmod /mnt/mtd_speedtest.ko dev=2
mtd_speedtest: eraseblock write speed is 5194 KiB/s
mtd_speedtest: testing page write speed
  509   495 root     D     1164   0%  32% insmod /mnt/mtd_speedtest.ko dev=2
  509   495 root     D     1164   0%  27% insmod /mnt/mtd_speedtest.ko dev=2
  509   495 root     D     1164   0%  25% insmod /mnt/mtd_speedtest.ko dev=2
  509   495 root     D     1164   0%  30% insmod /mnt/mtd_speedtest.ko dev=2
mtd_speedtest: page write speed is 5024 KiB/s

Signed-off-by: Josh Wu <josh.wu@atmel.com>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
2013-08-05 21:07:51 +01:00
..
chips mtd: jedec_probe: fix LH28F640BF definition 2013-08-05 21:04:17 +01:00
devices mtd: diskonchip: remove unused entries in Kconfig 2013-08-05 21:01:55 +01:00
lpddr
maps mtd: remove obsolete JEDEC mapping drivers 2013-08-05 21:01:08 +01:00
nand mtd: atmel_nand: enable Nand Flash Controller (NFC) write via sram 2013-08-05 21:07:51 +01:00
onenand mtd: onenand/samsung: Remove redundant platform_set_drvdata() 2013-08-05 20:50:08 +01:00
tests mtd: tests: don't print error messages when out-of-memory 2013-08-05 20:49:22 +01:00
ubi A couple of fixes and clean-ups, allow for assigning user-defined 2013-07-05 12:09:48 -07:00
afs.c
ar7part.c
bcm47xxpart.c mtd: bcm47xxpart: look for NVRAM at the end of device 2013-03-08 11:36:00 +00:00
bcm63xxpart.c mtd: bcm63xxpart: use nvram for PSI size 2013-08-05 18:59:34 +01:00
cmdlinepart.c
ftl.c
inftlcore.c
inftlmount.c
Kconfig mtd: merge mtdchar module with mtdcore 2013-04-05 13:16:54 +01:00
Makefile mtd: merge mtdchar module with mtdcore 2013-04-05 13:16:54 +01:00
mtd_blkdevs.c block_device_operations->release() should return void 2013-05-07 02:16:21 -04:00
mtdblock_ro.c
mtdblock.c mtd_blktrans_ops->release() should return void 2013-05-05 21:31:22 -04:00
mtdchar.c mtdchar: switch to fixed_size_llseek() 2013-06-29 12:57:27 +04:00
mtdconcat.c
mtdcore.c drivers: avoid format string in dev_set_name 2013-07-03 16:07:41 -07:00
mtdcore.h mtd: merge mtdchar module with mtdcore 2013-04-05 13:16:54 +01:00
mtdoops.c
mtdpart.c mtd: mtdcore: use const qualifier 2013-04-05 13:04:27 +01:00
mtdsuper.c
mtdswap.c
nftlcore.c
nftlmount.c
ofpart.c mtd: ofpart: support partitions of 4 GiB and larger 2013-04-05 12:05:53 +01:00
redboot.c
rfd_ftl.c
sm_ftl.c mtd_blktrans_ops->release() should return void 2013-05-05 21:31:22 -04:00
sm_ftl.h
ssfdc.c