[PATCH 00/22] mtd: rawnand: NV-DDR support
Miquel Raynal
miquel.raynal at bootlin.com
Wed May 5 14:37:28 PDT 2021
Hello,
After almost 20 years of exclusive SDR support in the Linux kernel and
thanks to the major updates recently done in the NAND subsystem, here is
the final series attempting to bring NV-DDR support to raw NAND
devices.
As always, first patches are here to prepare the field for the second
half which actually brings NV-DDR support bits per bits to make it more
readable and easier to review.
Finally, the Arasan NAND controller driver is being updated to support the
NV-DDR interface. On a 16kiB-page NAND device here are the measured results:
* SDR mode 5:
> 8094 kiB/s reads
> 7013 kiB/s writes
* NV-DDR mode 5:
> 16062 kiB/s reads
> 24824 kiB/s writes
However, these values are much lower than what the controller is able to do
because of the flaky design of the Arasan ECC engine which needs a costly
software workaround. When this workaround is disabled, the bare throughput,
still with ECC correction, even though it cannot be 100% trusted, is:
> 113777 kiB/s reads
> 31751 kiB/s writes
Cheers,
Miquèl
Miquel Raynal (22):
mtd: rawnand: Add a helper to clarify the interface configuration
mtd: rawnand: arasan: Check the proposed data interface is supported
mtd: rawnand: atmel: Check the proposed data interface is supported
mtd: rawnand: onfi: Use the BIT() macro when possible
mtd: rawnand: Update dead URL
mtd: rawnand: Use more recent ONFI specification wording
mtd: rawnand: Clarify the NV-DDR entries in the ONFI structure
mtd: rawnand: Add NV-DDR timings
mtd: rawnand: Retrieve NV-DDR timing modes from the ONFI parameter
page
mtd: rawnand: Add an indirection on onfi_fill_interface_config()
mtd: rawnand: Add onfi_fill_nvddr_interface_config() helper
mtd: rawnand: Avoid accessing NV-DDR timings from legacy code
mtd: rawnand: Access SDR and NV-DDR timings through a common macro
mtd: rawnand: Handle the double bytes in NV-DDR mode
mtd: rawnand: Add a helper to find the closest ONFI NV-DDR mode
mtd: rawnand: Support enabling NV-DDR through SET_FEATURES
mtd: rawnand: Allow SDR timings to be nacked
mtd: rawnand: Choose the best timings, NV-DDR included
MAINTAINERS: Add myself as co-maintainer of the Arasan NAND controller
driver
mtd: rawnand: arasan: Fix a macro parameter
mtd: rawnand: arasan: Workaround a misbehaving prog type with NV-DDR
mtd: rawnand: arasan: Support NV-DDR interface
MAINTAINERS | 1 +
drivers/mtd/nand/raw/arasan-nand-controller.c | 45 +-
drivers/mtd/nand/raw/atmel/nand-controller.c | 7 +-
.../mtd/nand/raw/cadence-nand-controller.c | 6 +-
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.h | 2 +-
drivers/mtd/nand/raw/internals.h | 5 +
drivers/mtd/nand/raw/nand_base.c | 325 ++++++++++----
drivers/mtd/nand/raw/nand_legacy.c | 2 +-
drivers/mtd/nand/raw/nand_onfi.c | 5 +-
drivers/mtd/nand/raw/nand_timings.c | 402 ++++++++++++++++--
include/linux/mtd/onfi.h | 40 +-
include/linux/mtd/rawnand.h | 155 ++++++-
12 files changed, 862 insertions(+), 133 deletions(-)
--
2.27.0
More information about the linux-mtd
mailing list