From: Miquel Raynal <miquel.raynal-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
To: David Woodhouse <dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>,
Brian Norris
<computersforpeace-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Boris Brezillon
<boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
Marek Vasut <marek.vasut-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Richard Weinberger <richard-/L3Ra7n9ekc@public.gmane.org>,
Cyrille Pitchen
<cyrille.pitchen-yU5RGvR974pGWvitb5QawA@public.gmane.org>,
Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
Jason Cooper <jason-NLaQJdtUoK4Be96aLqz0jA@public.gmane.org>,
Andrew Lunn <andrew-g2DYL2Zd6BY@public.gmane.org>,
Gregory Clement
<gregory.clement-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
Sebastian Hesselbarth
<sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Russell King <linux-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org>,
Daniel Mack <daniel-cYrQPVfZoowdnm+yROfE0A@public.gmane.org>,
Haojian Zhuang
<haojian.zhuang-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Robert Jarzmik <robert.jarzmik-GANU6spQydw@public.gmane.org>,
Eric Miao <eric.y.miao-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Catalin Marinas <catalin.marinas-5wv7dgnIgG8@public.gmane.org>
Cc: linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
Thomas Petazzoni
<thomas.petazzoni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
Antoine Tenart
<antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
Nadav Haklai <nadavh-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org>,
Miquel Raynal
<miquel.raynal-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
Ofer Heifetz <oferh-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org>,
Hanna Hawa <hannah-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org>,
Neta Zur Hershkovits
<neta-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org>,
Willy Tarreau <w@1wt.eu>,
Sean Nyekjaer
<sean.nyekjaer-rjjw5hvvQKZaa/9Udqfwiw@public.gmane.org>
Subject: [PATCH v3 0/7] Marvell NAND controller rework with ->exec_op()
Date: Tue, 9 Jan 2018 11:36:30 +0100 [thread overview]
Message-ID: <20180109103637.23798-1-miquel.raynal@free-electrons.com> (raw)
Hi,
After the addition of the NAND framework ->exec_op() interface (see [1]
for the series preparing it and [2] for the last version of the
core-side implementation of ->exec_op() itself), this series replaces
the current Marvell NAND controller driver pxa3xx_nand.c with a rework
called marvell_nand.c.
Aside the fact that it drops the big state machine, improves the overall
speed and implements raw accesses, it is the first driver-side
implementation of the ->exec_op() interface and may be used as reference
for latter reworks of the same type.
One may find more detail about why a completely new driver is needed in
the commit log of:
"mtd: nand: add reworked Marvell NAND controller driver"
Device tree NAND node definition for all platforms referring to the
Marvell driver using the new bindings have already been accepted by the
MVEBU DT maintainers and will be merged after the driver. They are more
hierarchical and fit the real organization of the hardware, by having
NAND partitions that are part of NAND chip nodes, themselves part of the
NAND controller node.
These changes have been tested on:
- PXA3xx platform with a CM-X300 board (2kiB page NAND, 1b/512B
strength, Hamming ECC engine) [32 bits]
- Armada 385 DB AP (4kiB page NAND, 4b/512B, BCH ECC engine) [32 bits]
- Armada 398 DB (4kiB page NAND, 8b/512B, BCH ECC engine using a layout
with a last chunk different than the others) [32 bits]
- Armada 7040 DB and Armada 8040 DB (4kiB page NAND, 4b/512B, BCH ECC
engine) [64 bits]
- Triax dvb-tc board (2kiB page NAND, 4b/512B, BCH ECC engine) [32 bits]
This version is known not to be stable yet with a Zylonite based setup but
otherwise looks good for Marvell EBU platforms.
For people who would like to test it easily, a branch ready to be tested
is available at [3]. It is based on nand/next and has all the changes
brought by the previously mentionned series as well as this one.
Thank you,
Miquèl
[1] https://www.spinics.net/lists/arm-kernel/msg619633.html
[2] http://lists.infradead.org/pipermail/linux-mtd/2017-December/077965.html
[3] https://github.com/miquelraynal/linux/tree/marvell/nand-next/nfc
Changes since v2:
- Added a patch to create the nand-rb property in the Documentation
- Rewording in the Documentation according to Rob's comments
- Moved from marvell,rb to nand-rb property in the code
- Disociated using this driver with Marvell EBU platforms than using
it with PXA ones
- Fixed the handling of 16-bit buses
- Fixed SPDX comment style
- Reorganized registers offsets/bit fields definitions as requested
- Moved to Kernel doc
- Changed the logic in ->select_chip() to use a prepared value of NDCR
only instead of recalculating it
- Fixed the presence of the SPARE_EN bit, reworked a bit the
hmg_do_read/write() helpers
- Fixed the OOB layouts that were unusable (all spare data first, then
all ECC bytes)
- Additional check on mtd->writesize when using NFCv1 (all sizes not
supported)
- Various typos/rewording
Changes since v1:
- Rewording
- Fixed BCH ->read/write_page() hooks for 2kiB pages NAND chips
- Removed license text, used SPDX tag instead
- Removed read_page_data()
- Enhanced the DT bindings document with the label property and the
deprecated bindings.
- Simplified the read_chunk() helper (OOB always read).
- Simplified the ->bch_read_page() hook by removing the addition raw
read to get ECC bytes.
- Fixed the ->correct() function that did not check for bitflips in
ECC bytes in erased pages.
Miquel Raynal (7):
dt-bindings: mtd: document new nand-rb property
dt-bindings: mtd: add Marvell NAND controller documentation
mtd: nand: add reworked Marvell NAND controller driver
mtd: nand: use reworked NAND controller driver with Marvell EBU SoCs
mtd: nand: use Marvell reworked NAND controller driver with all
platforms
dt-bindings: mtd: remove pxa3xx NAND controller documentation
mtd: nand: remove useless fields from pxa3xx NAND platform data
.../devicetree/bindings/mtd/marvell-nand.txt | 123 +
Documentation/devicetree/bindings/mtd/nand.txt | 1 +
.../devicetree/bindings/mtd/pxa3xx-nand.txt | 50 -
arch/arm/configs/cm_x300_defconfig | 2 +-
arch/arm/configs/mvebu_v7_defconfig | 2 +-
arch/arm/configs/pxa3xx_defconfig | 3 +-
arch/arm/configs/pxa_defconfig | 2 +-
arch/arm/configs/raumfeld_defconfig | 2 +-
arch/arm/mach-mmp/ttc_dkb.c | 4 +-
arch/arm/mach-pxa/cm-x300.c | 8 +-
arch/arm/mach-pxa/colibri-pxa3xx.c | 8 +-
arch/arm/mach-pxa/colibri.h | 2 +-
arch/arm/mach-pxa/littleton.c | 10 +-
arch/arm/mach-pxa/mxm8x10.c | 10 +-
arch/arm/mach-pxa/raumfeld.c | 6 +-
arch/arm/mach-pxa/zylonite.c | 10 +-
arch/arm64/configs/defconfig | 2 +-
drivers/mtd/nand/Kconfig | 18 +-
drivers/mtd/nand/Makefile | 2 +-
drivers/mtd/nand/marvell_nand.c | 2896 ++++++++++++++++++++
drivers/mtd/nand/pxa3xx_nand.c | 2104 --------------
include/linux/platform_data/mtd-nand-pxa3xx.h | 43 +-
22 files changed, 3072 insertions(+), 2236 deletions(-)
create mode 100644 Documentation/devicetree/bindings/mtd/marvell-nand.txt
delete mode 100644 Documentation/devicetree/bindings/mtd/pxa3xx-nand.txt
create mode 100644 drivers/mtd/nand/marvell_nand.c
delete mode 100644 drivers/mtd/nand/pxa3xx_nand.c
--
2.11.0
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next reply other threads:[~2018-01-09 10:36 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-09 10:36 Miquel Raynal [this message]
2018-01-11 22:28 ` [PATCH v3 0/7] Marvell NAND controller rework with ->exec_op() Willy Tarreau
[not found] ` <20180111222833.GA15584-K+wRfnb2/UA@public.gmane.org>
2018-01-12 18:21 ` Miquel Raynal
[not found] ` <20180109103637.23798-1-miquel.raynal-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2018-01-09 10:36 ` [PATCH v3 1/7] dt-bindings: mtd: document new nand-rb property Miquel Raynal
[not found] ` <20180109103637.23798-2-miquel.raynal-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2018-01-11 22:23 ` Rob Herring
2018-01-09 10:36 ` [PATCH v3 2/7] dt-bindings: mtd: add Marvell NAND controller documentation Miquel Raynal
[not found] ` <20180109103637.23798-3-miquel.raynal-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2018-01-11 22:25 ` Rob Herring
2018-01-09 10:36 ` [PATCH v3 3/7] mtd: nand: add reworked Marvell NAND controller driver Miquel Raynal
2018-01-09 10:36 ` [PATCH v3 4/7] mtd: nand: use reworked NAND controller driver with Marvell EBU SoCs Miquel Raynal
2018-01-11 10:16 ` Gregory CLEMENT
2018-01-09 10:36 ` [PATCH v3 5/7] mtd: nand: use Marvell reworked NAND controller driver with all platforms Miquel Raynal
[not found] ` <20180109103637.23798-6-miquel.raynal-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2018-02-12 10:20 ` Boris Brezillon
2018-01-09 10:36 ` [PATCH v3 6/7] dt-bindings: mtd: remove pxa3xx NAND controller documentation Miquel Raynal
2018-01-09 10:36 ` [PATCH v3 7/7] mtd: nand: remove useless fields from pxa3xx NAND platform data Miquel Raynal
2018-01-11 11:27 ` [PATCH v3 0/7] Marvell NAND controller rework with ->exec_op() Boris Brezillon
2018-01-11 17:42 ` Robert Jarzmik
[not found] ` <87efmwb8bj.fsf-4ty26DBLk+jEm7gnYqmdkQ@public.gmane.org>
2018-01-11 22:24 ` Miquel RAYNAL
2018-01-12 8:09 ` Robert Jarzmik
2018-01-12 15:55 ` Boris Brezillon
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=20180109103637.23798-1-miquel.raynal@free-electrons.com \
--to=miquel.raynal-wi1+55scjutkeb57/3fjtnbpr1lh4cv8@public.gmane.org \
--cc=andrew-g2DYL2Zd6BY@public.gmane.org \
--cc=antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
--cc=boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
--cc=catalin.marinas-5wv7dgnIgG8@public.gmane.org \
--cc=computersforpeace-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=cyrille.pitchen-yU5RGvR974pGWvitb5QawA@public.gmane.org \
--cc=daniel-cYrQPVfZoowdnm+yROfE0A@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
--cc=eric.y.miao-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=gregory.clement-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
--cc=hannah-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org \
--cc=haojian.zhuang-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=jason-NLaQJdtUoK4Be96aLqz0jA@public.gmane.org \
--cc=linux-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=marek.vasut-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
--cc=nadavh-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org \
--cc=neta-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org \
--cc=oferh-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org \
--cc=richard-/L3Ra7n9ekc@public.gmane.org \
--cc=robert.jarzmik-GANU6spQydw@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=sean.nyekjaer-rjjw5hvvQKZaa/9Udqfwiw@public.gmane.org \
--cc=sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=thomas.petazzoni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
--cc=w@1wt.eu \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).