linux-stable/drivers/mtd/nand/raw
Miquel Raynal b120612206 mtd: rawnand: gpmi: use core timings instead of an empirical derivation
GPMI driver timings derivation looks very empirical and does not use
the known timings that the core wants to use with the NAND chip, by
using local defined constants that have no special meaning from the
outside world.

Simplify the way all of this is computed and use the NAND core's SDR
timings.

Integrity of the reads/writes has been checked with nandbiterrs, speed
improvements with flash_speed on a Freescale i.MX6 DualLite/Solo SABRE
Automotive Board. Measures are below, variations of less than 150kiB/s
between tests are common and then not significant. Speeds using mode 5
are the same, while speeds using mode 0 are quite improved (+40/50%
from non-optimal computation).

Forcing timings mode 0:

=======================

Before this patch:
------------------
eraseblock write speed is 2298 KiB/s
eraseblock read speed is 3636 KiB/s
page write speed is 2136 KiB/s
page read speed is 3316 KiB/s
2 page write speed is 2199 KiB/s
2 page read speed is 3468 KiB/s

After this patch:
-----------------
eraseblock write speed is 3232 KiB/s
eraseblock read speed is 5663 KiB/s
page write speed is 2915 KiB/s
page read speed is 4904 KiB/s
2 page write speed is 3084 KiB/s
2 page read speed is 5267 KiB/s

Forcing timings mode 5:
=======================

Before this patch:
------------------
eraseblock write speed is 4338 KiB/s
eraseblock read speed is 14883 KiB/s
page write speed is 3786 KiB/s
page read speed is 12800 KiB/s
2 page write speed is 4076 KiB/s
2 page read speed is 14065 KiB/s

After this patch:
-----------------
eraseblock write speed is 4309 KiB/s
eraseblock read speed is 14712 KiB/s
page write speed is 3764 KiB/s
page read speed is 12673 KiB/s
2 page write speed is 4076 KiB/s
2 page read speed is 14065 KiB/s

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
2018-03-20 12:00:00 +01:00
..
atmel
bcm47xxnflash mtd: rawnand: rename SET/GET FEATURES related functions 2018-03-20 09:33:22 +01:00
brcmnand
gpmi-nand mtd: rawnand: gpmi: use core timings instead of an empirical derivation 2018-03-20 12:00:00 +01:00
ams-delta.c
au1550nd.c
cafe_nand.c mtd: rawnand: rename SET/GET FEATURES related functions 2018-03-20 09:33:22 +01:00
cmx270_nand.c
cs553x_nand.c
davinci_nand.c
denali.c
denali.h
denali_dt.c
denali_pci.c
diskonchip.c
docg4.c mtd: rawnand: rename SET/GET FEATURES related functions 2018-03-20 09:33:22 +01:00
fsl_elbc_nand.c mtd: rawnand: rename SET/GET FEATURES related functions 2018-03-20 09:33:22 +01:00
fsl_ifc_nand.c mtd: rawnand: rename SET/GET FEATURES related functions 2018-03-20 09:33:22 +01:00
fsl_upm.c
fsmc_nand.c
gpio.c
hisi504_nand.c mtd: rawnand: rename SET/GET FEATURES related functions 2018-03-20 09:33:22 +01:00
jz4740_nand.c
jz4780_bch.c
jz4780_bch.h
jz4780_nand.c
Kconfig mtd: rawnand: makes the Kconfig entry clear when it comes to raw NANDs 2018-03-19 10:53:59 +01:00
lpc32xx_mlc.c
lpc32xx_slc.c
Makefile mtd: rawnand: remove bf5xx_nand driver 2018-03-17 15:35:32 +01:00
marvell_nand.c
mpc5121_nfc.c mtd: rawnand: rename SET/GET FEATURES related functions 2018-03-20 09:33:22 +01:00
mtk_ecc.c
mtk_ecc.h
mtk_nand.c
mxc_nand.c mtd: rawnand: mxc: remove useless checks in GET/SET_FEATURES functions 2018-03-20 09:48:45 +01:00
nand_amd.c
nand_base.c mtd: rawnand: get rid of the ONFI parameter page in nand_chip 2018-03-20 11:59:59 +01:00
nand_bbt.c
nand_bch.c
nand_ecc.c mtd: rawnand: remove STANDALONE compile mode of nand_ecc 2018-03-15 16:42:33 +01:00
nand_hynix.c
nand_ids.c
nand_macronix.c mtd: rawnand: macronix: nack the support of changing timings for one chip 2018-03-20 11:59:58 +01:00
nand_micron.c mtd: rawnand: allow vendors to declare (un)supported features 2018-03-20 11:59:58 +01:00
nand_samsung.c
nand_timings.c mtd: rawnand: prepare the removal of the ONFI parameter page 2018-03-20 11:59:54 +01:00
nand_toshiba.c
nandsim.c
ndfc.c
nuc900_nand.c
omap2.c
omap_elm.c
orion_nand.c
oxnas_nand.c
pasemi_nand.c
plat_nand.c
qcom_nandc.c mtd: rawnand: rename SET/GET FEATURES related functions 2018-03-20 09:33:22 +01:00
r852.c
r852.h
s3c2410.c
sh_flctl.c mtd: rawnand: rename SET/GET FEATURES related functions 2018-03-20 09:33:22 +01:00
sharpsl.c
sm_common.c
sm_common.h
socrates_nand.c
sunxi_nand.c
tango_nand.c
tmio_nand.c
txx9ndfmc.c
vf610_nfc.c mtd: rawnand: vf610_nfc: support ONFI SET/GET_FEATURES commands 2018-03-17 15:35:32 +01:00
xway_nand.c