From: Masahiro Yamada <yamada.masahiro@socionext.com> To: linux-mtd@lists.infradead.org Cc: laurent.monat@idquantique.com, thorsten.christiansson@idquantique.com, Enrico Jorns <ejo@pengutronix.de>, Jason Roberts <jason.e.roberts@intel.com>, Artem Bityutskiy <artem.bityutskiy@linux.intel.com>, Dinh Nguyen <dinguyen@kernel.org>, Boris Brezillon <boris.brezillon@free-electrons.com>, Marek Vasut <marek.vasut@gmail.com>, Brian Norris <computersforpeace@gmail.com>, Graham Moore <grmoore@opensource.altera.com>, David Woodhouse <dwmw2@infradead.org>, Masami Hiramatsu <mhiramat@kernel.org>, Chuanxiao Dong <chuanxiao.dong@intel.com>, Jassi Brar <jaswinder.singh@linaro.org>, Masahiro Yamada <yamada.masahiro@socionext.com>, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Richard Weinberger <richard@nod.at>, Cyrille Pitchen <cyrille.pitchen@atmel.com>, Rob Herring <robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com> Subject: [PATCH v2 00/53] mtd: nand: denali: 2nd round of Denali NAND IP patch bomb Date: Wed, 22 Mar 2017 23:07:07 +0900 [thread overview] Message-ID: <1490191680-14481-1-git-send-email-yamada.masahiro@socionext.com> (raw) It took a couple months to update this series, but finally here is v2. (v1: https://lkml.org/lkml/2016/11/26/144 ) This driver includes many problems. One of the biggest one is a bunch of hard-coded parameters. This IP has many parameters that can be customized when a delivery RTL is generated. However, this driver was upstreamed by Intel, with Intel parameters hard-coded. Later, Altera added denali_dt.c to use this driver for embedded boards, but they did not fix the code in denali.c So, this driver has never worked. Even some DT bindings actually turned out wrong. There are more problems: [1] The driver just retrieves the OOB area as-is whereas the controller uses syndrome page layout. [2] Many NAND chip specific parameters are hard-coded in the driver. [3] ONFi devices are not working [4] It can not read Bad Block Marker This patch series intends to solve those problems. Since v1, here are more fixes/improvements: - Fix raw/oob callbacks for syndrome page layout - Implement setup_data_interface() callback - Fix/implement more commands for ONFi devices - Allow to skip the driver internal bounce buffer - Support PIO in case DMA is not supported - Switch from ->cmdfunc over to ->cmd_ctrl Masahiro Yamada (53): mtd: nand: allow to set only one of ECC size and ECC strength from DT mtd: nand: use read_oob() instead of cmdfunc() for bad block check mtd: nand: denali: remove unused CONFIG option and macros mtd: nand: denali: remove redundant define of BANK(x) mtd: nand: denali: remove more unused struct members mtd: nand: denali: fix comment of denali_nand_info::flash_mem mtd: nand: denali: consolidate INTR_STATUS__* and INTR_EN__* macros mtd: nand: denali: introduce capability flag mtd: nand: denali: use int where no reason to use fixed width variable mtd: nand: denali: fix erased page checking mtd: nand: denali: fix bitflips calculation in handle_ecc() mtd: nand: denali: support HW_ECC_FIXUP capability mtd: nand: denali_dt: enable HW_ECC_FIXUP for Altera SOCFPGA variant mtd: nand: denali: support 64bit capable DMA engine mtd: nand: denali_dt: remove dma-mask DT property mtd: nand: denali_dt: use pdev instead of ofdev for platform_device mtd: nand: denali: allow to override revision number mtd: nand: denali: use nand_chip to hold frequently accessed data mtd: nand: denali: call nand_set_flash_node() to set DT node mtd: nand: denali: do not set mtd->name mtd: nand: denali: move multi device fixup code to a helper function mtd: nand: denali: simplify multi device fixup code mtd: nand: denali: set DEVICES_CONNECTED 1 if not set mtd: nand: denali: remove meaningless writes to read-only registers mtd: nand: denali: remove unnecessary writes to ECC_CORRECTION mtd: nand: denali: support 1024 byte ECC step size mtd: nand: denali: avoid hard-coding ecc.strength and ecc.bytes mtd: nand: denali: support "nand-ecc-strength" DT property mtd: nand: denali: remove Toshiba and Hynix specific fixup code mtd: nand: denali_dt: add compatible strings for UniPhier SoC variants mtd: nand: denali: set NAND_ECC_CUSTOM_PAGE_ACCESS mtd: nand: denali: do not propagate NAND_STATUS_FAIL to waitfunc() mtd: nand: denali: use BIT() and GENMASK() for register macros mtd: nand: denali: remove unneeded find_valid_banks() mtd: nand: denali: handle timing parameters by setup_data_interface() mtd: nand: denali: remove meaningless pipeline read-ahead operation mtd: nand: denali: rework interrupt handling mtd: nand: denali: fix NAND_CMD_STATUS handling mtd: nand: denali: fix NAND_CMD_PARAM handling mtd: nand: do not check R/B# for CMD_READID in nand_command(_lp) mtd: nand: do not check R/B# for CMD_SET_FEATURES in nand_command(_lp) mtd: nand: denali: switch over to cmd_ctrl instead of cmdfunc mtd: nand: denali: fix bank reset function mtd: nand: denali: use interrupt instead of polling for bank reset mtd: nand: denali: propagate page to helpers via function argument mtd: nand: denali: merge struct nand_buf into struct denali_nand_info mtd: nand: denali: use flag instead of register macro for direction mtd: nand: denali: fix raw and oob accessors for syndrome page layout mtd: nand: denali: support hardware-assisted erased page detection mtd: nand: allocate aligned buffers if NAND_OWN_BUFFERS is unset mtd: nand: denali: skip driver internal bounce buffer when possible mtd: nand: denali: use non-managed kmalloc() for DMA buffer mtd: nand: denali: enable bad block table scan .../devicetree/bindings/mtd/denali-nand.txt | 24 +- drivers/mtd/nand/Kconfig | 11 - drivers/mtd/nand/denali.c | 2073 +++++++++----------- drivers/mtd/nand/denali.h | 453 ++--- drivers/mtd/nand/denali_dt.c | 104 +- drivers/mtd/nand/denali_pci.c | 10 +- drivers/mtd/nand/nand_base.c | 78 +- 7 files changed, 1278 insertions(+), 1475 deletions(-) -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: Masahiro Yamada <yamada.masahiro@socionext.com> To: linux-mtd@lists.infradead.org Cc: laurent.monat@idquantique.com, thorsten.christiansson@idquantique.com, Enrico Jorns <ejo@pengutronix.de>, Jason Roberts <jason.e.roberts@intel.com>, Artem Bityutskiy <artem.bityutskiy@linux.intel.com>, Dinh Nguyen <dinguyen@kernel.org>, Boris Brezillon <boris.brezillon@free-electrons.com>, Marek Vasut <marek.vasut@gmail.com>, Brian Norris <computersforpeace@gmail.com>, Graham Moore <grmoore@opensource.altera.com>, David Woodhouse <dwmw2@infradead.org>, Masami Hiramatsu <mhiramat@kernel.org>, Chuanxiao Dong <chuanxiao.dong@intel.com>, Jassi Brar <jaswinder.singh@linaro.org>, Masahiro Yamada <yamada.masahiro@socionext.com>, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Richard Weinberger <richard@nod.at>, Cyrille Pitchen <cyrille.pitchen@at> Subject: [PATCH v2 00/53] mtd: nand: denali: 2nd round of Denali NAND IP patch bomb Date: Wed, 22 Mar 2017 23:07:07 +0900 [thread overview] Message-ID: <1490191680-14481-1-git-send-email-yamada.masahiro@socionext.com> (raw) It took a couple months to update this series, but finally here is v2. (v1: https://lkml.org/lkml/2016/11/26/144 ) This driver includes many problems. One of the biggest one is a bunch of hard-coded parameters. This IP has many parameters that can be customized when a delivery RTL is generated. However, this driver was upstreamed by Intel, with Intel parameters hard-coded. Later, Altera added denali_dt.c to use this driver for embedded boards, but they did not fix the code in denali.c So, this driver has never worked. Even some DT bindings actually turned out wrong. There are more problems: [1] The driver just retrieves the OOB area as-is whereas the controller uses syndrome page layout. [2] Many NAND chip specific parameters are hard-coded in the driver. [3] ONFi devices are not working [4] It can not read Bad Block Marker This patch series intends to solve those problems. Since v1, here are more fixes/improvements: - Fix raw/oob callbacks for syndrome page layout - Implement setup_data_interface() callback - Fix/implement more commands for ONFi devices - Allow to skip the driver internal bounce buffer - Support PIO in case DMA is not supported - Switch from ->cmdfunc over to ->cmd_ctrl Masahiro Yamada (53): mtd: nand: allow to set only one of ECC size and ECC strength from DT mtd: nand: use read_oob() instead of cmdfunc() for bad block check mtd: nand: denali: remove unused CONFIG option and macros mtd: nand: denali: remove redundant define of BANK(x) mtd: nand: denali: remove more unused struct members mtd: nand: denali: fix comment of denali_nand_info::flash_mem mtd: nand: denali: consolidate INTR_STATUS__* and INTR_EN__* macros mtd: nand: denali: introduce capability flag mtd: nand: denali: use int where no reason to use fixed width variable mtd: nand: denali: fix erased page checking mtd: nand: denali: fix bitflips calculation in handle_ecc() mtd: nand: denali: support HW_ECC_FIXUP capability mtd: nand: denali_dt: enable HW_ECC_FIXUP for Altera SOCFPGA variant mtd: nand: denali: support 64bit capable DMA engine mtd: nand: denali_dt: remove dma-mask DT property mtd: nand: denali_dt: use pdev instead of ofdev for platform_device mtd: nand: denali: allow to override revision number mtd: nand: denali: use nand_chip to hold frequently accessed data mtd: nand: denali: call nand_set_flash_node() to set DT node mtd: nand: denali: do not set mtd->name mtd: nand: denali: move multi device fixup code to a helper function mtd: nand: denali: simplify multi device fixup code mtd: nand: denali: set DEVICES_CONNECTED 1 if not set mtd: nand: denali: remove meaningless writes to read-only registers mtd: nand: denali: remove unnecessary writes to ECC_CORRECTION mtd: nand: denali: support 1024 byte ECC step size mtd: nand: denali: avoid hard-coding ecc.strength and ecc.bytes mtd: nand: denali: support "nand-ecc-strength" DT property mtd: nand: denali: remove Toshiba and Hynix specific fixup code mtd: nand: denali_dt: add compatible strings for UniPhier SoC variants mtd: nand: denali: set NAND_ECC_CUSTOM_PAGE_ACCESS mtd: nand: denali: do not propagate NAND_STATUS_FAIL to waitfunc() mtd: nand: denali: use BIT() and GENMASK() for register macros mtd: nand: denali: remove unneeded find_valid_banks() mtd: nand: denali: handle timing parameters by setup_data_interface() mtd: nand: denali: remove meaningless pipeline read-ahead operation mtd: nand: denali: rework interrupt handling mtd: nand: denali: fix NAND_CMD_STATUS handling mtd: nand: denali: fix NAND_CMD_PARAM handling mtd: nand: do not check R/B# for CMD_READID in nand_command(_lp) mtd: nand: do not check R/B# for CMD_SET_FEATURES in nand_command(_lp) mtd: nand: denali: switch over to cmd_ctrl instead of cmdfunc mtd: nand: denali: fix bank reset function mtd: nand: denali: use interrupt instead of polling for bank reset mtd: nand: denali: propagate page to helpers via function argument mtd: nand: denali: merge struct nand_buf into struct denali_nand_info mtd: nand: denali: use flag instead of register macro for direction mtd: nand: denali: fix raw and oob accessors for syndrome page layout mtd: nand: denali: support hardware-assisted erased page detection mtd: nand: allocate aligned buffers if NAND_OWN_BUFFERS is unset mtd: nand: denali: skip driver internal bounce buffer when possible mtd: nand: denali: use non-managed kmalloc() for DMA buffer mtd: nand: denali: enable bad block table scan .../devicetree/bindings/mtd/denali-nand.txt | 24 +- drivers/mtd/nand/Kconfig | 11 - drivers/mtd/nand/denali.c | 2073 +++++++++----------- drivers/mtd/nand/denali.h | 453 ++--- drivers/mtd/nand/denali_dt.c | 104 +- drivers/mtd/nand/denali_pci.c | 10 +- drivers/mtd/nand/nand_base.c | 78 +- 7 files changed, 1278 insertions(+), 1475 deletions(-) -- 2.7.4
next reply other threads:[~2017-03-22 14:13 UTC|newest] Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-03-22 14:07 Masahiro Yamada [this message] 2017-03-22 14:07 ` [PATCH v2 00/53] mtd: nand: denali: 2nd round of Denali NAND IP patch bomb Masahiro Yamada 2017-03-22 14:07 ` [PATCH v2 01/53] mtd: nand: allow to set only one of ECC size and ECC strength from DT Masahiro Yamada 2017-03-22 14:07 ` [PATCH v2 02/53] mtd: nand: use read_oob() instead of cmdfunc() for bad block check Masahiro Yamada 2017-03-22 14:07 ` [PATCH v2 03/53] mtd: nand: denali: remove unused CONFIG option and macros Masahiro Yamada 2017-03-22 14:07 ` [PATCH v2 04/53] mtd: nand: denali: remove redundant define of BANK(x) Masahiro Yamada 2017-03-22 14:07 ` [PATCH v2 05/53] mtd: nand: denali: remove more unused struct members Masahiro Yamada 2017-03-22 14:07 ` [PATCH v2 06/53] mtd: nand: denali: fix comment of denali_nand_info::flash_mem Masahiro Yamada 2017-03-22 14:07 ` [PATCH v2 07/53] mtd: nand: denali: consolidate INTR_STATUS__* and INTR_EN__* macros Masahiro Yamada 2017-03-22 14:07 ` [PATCH v2 08/53] mtd: nand: denali: introduce capability flag Masahiro Yamada 2017-03-22 14:07 ` [PATCH v2 09/53] mtd: nand: denali: use int where no reason to use fixed width variable Masahiro Yamada 2017-03-22 14:07 ` [PATCH v2 10/53] mtd: nand: denali: fix erased page checking Masahiro Yamada 2017-03-22 20:36 ` Boris Brezillon 2017-03-23 5:15 ` Masahiro Yamada 2017-03-23 8:03 ` Boris Brezillon 2017-03-22 20:56 ` Boris Brezillon 2017-03-23 5:04 ` Masahiro Yamada 2017-03-23 7:56 ` Boris Brezillon 2017-03-24 2:43 ` Masahiro Yamada 2017-03-24 8:06 ` Boris Brezillon 2017-03-22 14:07 ` [PATCH v2 11/53] mtd: nand: denali: fix bitflips calculation in handle_ecc() Masahiro Yamada 2017-03-22 20:57 ` Boris Brezillon 2017-03-23 7:02 ` Masahiro Yamada 2017-03-23 8:12 ` Boris Brezillon 2017-03-22 14:07 ` [PATCH v2 12/53] mtd: nand: denali: support HW_ECC_FIXUP capability Masahiro Yamada 2017-03-22 21:09 ` Boris Brezillon 2017-03-23 7:06 ` Masahiro Yamada 2017-03-23 8:16 ` Boris Brezillon 2017-03-22 21:12 ` Boris Brezillon 2017-03-23 7:05 ` Masahiro Yamada 2017-03-22 14:07 ` [PATCH v2 13/53] mtd: nand: denali_dt: enable HW_ECC_FIXUP for Altera SOCFPGA variant Masahiro Yamada 2017-03-22 14:07 ` Masahiro Yamada 2017-03-22 14:07 ` [PATCH v2 14/53] mtd: nand: denali: support 64bit capable DMA engine Masahiro Yamada 2017-03-22 14:07 ` [PATCH v2 15/53] mtd: nand: denali_dt: remove dma-mask DT property Masahiro Yamada 2017-03-22 14:07 ` Masahiro Yamada 2017-03-22 14:07 ` [PATCH v2 16/53] mtd: nand: denali_dt: use pdev instead of ofdev for platform_device Masahiro Yamada 2017-03-22 14:07 ` [PATCH v2 17/53] mtd: nand: denali: allow to override revision number Masahiro Yamada 2017-03-22 14:07 ` [PATCH v2 18/53] mtd: nand: denali: use nand_chip to hold frequently accessed data Masahiro Yamada 2017-03-22 14:07 ` [PATCH v2 19/53] mtd: nand: denali: call nand_set_flash_node() to set DT node Masahiro Yamada 2017-03-22 14:07 ` [PATCH v2 20/53] mtd: nand: denali: do not set mtd->name Masahiro Yamada 2017-03-27 15:31 ` Boris Brezillon 2017-03-28 21:32 ` Masahiro Yamada 2017-03-28 21:40 ` Boris Brezillon 2017-03-29 1:19 ` Masahiro Yamada 2017-03-29 7:19 ` Boris Brezillon 2017-03-29 11:30 ` Masahiro Yamada 2017-03-22 14:07 ` [PATCH v2 21/53] mtd: nand: denali: move multi device fixup code to a helper function Masahiro Yamada 2017-03-22 14:07 ` [PATCH v2 22/53] mtd: nand: denali: simplify multi device fixup code Masahiro Yamada 2017-03-22 14:07 ` [PATCH v2 23/53] mtd: nand: denali: set DEVICES_CONNECTED 1 if not set Masahiro Yamada 2017-03-22 14:07 ` [PATCH v2 24/53] mtd: nand: denali: remove meaningless writes to read-only registers Masahiro Yamada
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=1490191680-14481-1-git-send-email-yamada.masahiro@socionext.com \ --to=yamada.masahiro@socionext.com \ --cc=artem.bityutskiy@linux.intel.com \ --cc=boris.brezillon@free-electrons.com \ --cc=chuanxiao.dong@intel.com \ --cc=computersforpeace@gmail.com \ --cc=cyrille.pitchen@atmel.com \ --cc=devicetree@vger.kernel.org \ --cc=dinguyen@kernel.org \ --cc=dwmw2@infradead.org \ --cc=ejo@pengutronix.de \ --cc=grmoore@opensource.altera.com \ --cc=jason.e.roberts@intel.com \ --cc=jaswinder.singh@linaro.org \ --cc=laurent.monat@idquantique.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mtd@lists.infradead.org \ --cc=marek.vasut@gmail.com \ --cc=mark.rutland@arm.com \ --cc=mhiramat@kernel.org \ --cc=richard@nod.at \ --cc=robh+dt@kernel.org \ --cc=thorsten.christiansson@idquantique.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: linkBe 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.