From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Richard Weinberger <richard@nod.at>,
Vignesh Raghavendra <vigneshr@ti.com>,
Tudor Ambarus <Tudor.Ambarus@microchip.com>,
<linux-mtd@lists.infradead.org>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
Michal Simek <monstr@monstr.eu>,
Naga Sureshkumar Relli <nagasure@xilinx.com>,
Amit Kumar Mahapatra <akumarma@xilinx.com>,
Miquel Raynal <miquel.raynal@bootlin.com>
Subject: [PATCH 00/22] mtd: rawnand: NV-DDR support
Date: Wed, 5 May 2021 23:37:28 +0200 [thread overview]
Message-ID: <20210505213750.257417-1-miquel.raynal@bootlin.com> (raw)
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
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
next reply other threads:[~2021-05-05 21:40 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-05 21:37 Miquel Raynal [this message]
2021-05-05 21:37 ` [PATCH 01/22] mtd: rawnand: Add a helper to clarify the interface configuration Miquel Raynal
2021-05-26 9:05 ` Miquel Raynal
2021-05-05 21:37 ` [PATCH 02/22] mtd: rawnand: arasan: Check the proposed data interface is supported Miquel Raynal
2021-05-26 9:05 ` Miquel Raynal
2021-05-05 21:37 ` [PATCH 03/22] mtd: rawnand: atmel: " Miquel Raynal
2021-05-26 9:05 ` Miquel Raynal
2021-05-05 21:37 ` [PATCH 04/22] mtd: rawnand: onfi: Use the BIT() macro when possible Miquel Raynal
2021-05-26 9:05 ` Miquel Raynal
2021-05-05 21:37 ` [PATCH 05/22] mtd: rawnand: Update dead URL Miquel Raynal
2021-05-26 9:05 ` Miquel Raynal
2021-05-05 21:37 ` [PATCH 06/22] mtd: rawnand: Use more recent ONFI specification wording Miquel Raynal
2021-05-26 9:05 ` Miquel Raynal
2021-05-05 21:37 ` [PATCH 07/22] mtd: rawnand: Clarify the NV-DDR entries in the ONFI structure Miquel Raynal
2021-05-26 9:04 ` Miquel Raynal
2021-05-05 21:37 ` [PATCH 08/22] mtd: rawnand: Add NV-DDR timings Miquel Raynal
2021-05-26 9:04 ` Miquel Raynal
2021-05-05 21:37 ` [PATCH 09/22] mtd: rawnand: Retrieve NV-DDR timing modes from the ONFI parameter page Miquel Raynal
2021-05-26 9:04 ` Miquel Raynal
2021-05-05 21:37 ` [PATCH 10/22] mtd: rawnand: Add an indirection on onfi_fill_interface_config() Miquel Raynal
2021-05-26 9:04 ` Miquel Raynal
2021-05-05 21:37 ` [PATCH 11/22] mtd: rawnand: Add onfi_fill_nvddr_interface_config() helper Miquel Raynal
2021-05-26 9:04 ` Miquel Raynal
2021-05-05 21:37 ` [PATCH 12/22] mtd: rawnand: Avoid accessing NV-DDR timings from legacy code Miquel Raynal
2021-05-26 9:04 ` Miquel Raynal
2021-05-05 21:37 ` [PATCH 13/22] mtd: rawnand: Access SDR and NV-DDR timings through a common macro Miquel Raynal
2021-05-26 9:04 ` Miquel Raynal
2021-05-05 21:37 ` [PATCH 14/22] mtd: rawnand: Handle the double bytes in NV-DDR mode Miquel Raynal
2021-05-26 9:04 ` Miquel Raynal
2021-05-05 21:37 ` [PATCH 15/22] mtd: rawnand: Add a helper to find the closest ONFI " Miquel Raynal
2021-05-26 9:04 ` Miquel Raynal
2021-05-05 21:37 ` [PATCH 16/22] mtd: rawnand: Support enabling NV-DDR through SET_FEATURES Miquel Raynal
2021-05-05 21:37 ` [PATCH 17/22] mtd: rawnand: Allow SDR timings to be nacked Miquel Raynal
2021-05-26 9:04 ` Miquel Raynal
2021-05-05 21:37 ` [PATCH 18/22] mtd: rawnand: Choose the best timings, NV-DDR included Miquel Raynal
2021-05-26 9:04 ` Miquel Raynal
2021-05-05 21:37 ` [PATCH 19/22] MAINTAINERS: Add myself as co-maintainer of the Arasan NAND controller driver Miquel Raynal
2021-05-26 9:04 ` Miquel Raynal
2021-05-05 21:37 ` [PATCH 20/22] mtd: rawnand: arasan: Fix a macro parameter Miquel Raynal
2021-05-26 9:03 ` Miquel Raynal
2021-05-05 21:37 ` [PATCH 21/22] mtd: rawnand: arasan: Workaround a misbehaving prog type with NV-DDR Miquel Raynal
2021-05-26 9:03 ` Miquel Raynal
2021-05-05 21:37 ` [PATCH 22/22] mtd: rawnand: arasan: Support NV-DDR interface Miquel Raynal
2021-05-26 9:03 ` Miquel Raynal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210505213750.257417-1-miquel.raynal@bootlin.com \
--to=miquel.raynal@bootlin.com \
--cc=Tudor.Ambarus@microchip.com \
--cc=akumarma@xilinx.com \
--cc=linux-mtd@lists.infradead.org \
--cc=monstr@monstr.eu \
--cc=nagasure@xilinx.com \
--cc=richard@nod.at \
--cc=thomas.petazzoni@bootlin.com \
--cc=vigneshr@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.