From patchwork Thu Mar 30 06:45:46 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Masahiro Yamada X-Patchwork-Id: 96244 Delivered-To: patch@linaro.org Received: by 10.140.89.233 with SMTP id v96csp102811qgd; Wed, 29 Mar 2017 23:51:13 -0700 (PDT) X-Received: by 10.84.129.2 with SMTP id 2mr5036017plb.119.1490856673572; Wed, 29 Mar 2017 23:51:13 -0700 (PDT) Return-Path: Received: from bombadil.infradead.org (bombadil.infradead.org. [65.50.211.133]) by mx.google.com with ESMTPS id 1si1260501pgt.65.2017.03.29.23.51.13 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 29 Mar 2017 23:51:13 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-mtd-bounces+patch=linaro.org@lists.infradead.org designates 65.50.211.133 as permitted sender) client-ip=65.50.211.133; Authentication-Results: mx.google.com; dkim=pass header.i=@lists.infradead.org; dkim=neutral (body hash did not verify) header.i=@nifty.com; spf=pass (google.com: best guess record for domain of linux-mtd-bounces+patch=linaro.org@lists.infradead.org designates 65.50.211.133 as permitted sender) smtp.mailfrom=linux-mtd-bounces+patch=linaro.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Owner; bh=5izyLu1L96JNjvDq67MM1J06u31rpsWI9ZW4ErBSVmY=; b=S77 gwJV+r05Uh7cDwu6ZB5oOqNIxDORSxyQm89emvpb91RI6ETOaWl4sJr+EJ35OI0DWgeWkmEdmhVue UlM2PVLrVViVgrqr5FXU/DUiVDXkCE5Z4Ge9G+vI6rTjR4N0iaHbJ1n9dSNr75imlh16EWljucV+/ ZFArtkwqObcjNkxJtPrF1+5OssSIfj4U3jA+6RUjmP6bkG4pObNhWUY5Jcu3LluLOY2X84k76Xjy+ MLQBG6zfP1JjyPJdF3anEf6pLXxTuYHTG0KDUx/ijPsLIWWYq7uihDUYZ9J2k3tJOcXD62KW+yXAH 7e1dGVoa7n/FC7XF1A2vZ8xRhnxW1DQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1ctTvL-0003p5-I9; Thu, 30 Mar 2017 06:51:11 +0000 Received: from conuserg-07.nifty.com ([210.131.2.74]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1ctTri-00070Y-4w for linux-mtd@lists.infradead.org; Thu, 30 Mar 2017 06:47:30 +0000 Received: from pug.e01.socionext.com (p14092-ipngnfx01kyoto.kyoto.ocn.ne.jp [153.142.97.92]) (authenticated) by conuserg-07.nifty.com with ESMTP id v2U6kUcO015463; Thu, 30 Mar 2017 15:46:31 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conuserg-07.nifty.com v2U6kUcO015463 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1490856392; bh=Mu4W80IxO4OYYFf7HN7gyWkdVOLyP8dMXU9gsPXOnFc=; h=From:To:Cc:Subject:Date:From; b=ot+fkS/BgbxdojNrQdASP9wWhoWH7Oergd2rF5O+5rcK/dGovmiXK+ZM4RDCFPbRe UDCuxwhfYqNSeg0Tq6OgTS2y67k0yOJiVMrVQNX37kEPb1WjHdeJ8UbIH1upX6xoJh ijmLKxlS89h3m3icMv93IC1HpcJSr23kGyxdQlwVlv+6APKjKUHnJmtLJFmhKVcVWP v8wOn31n3o2ZQ5rwPa+70nOTPNka6xNkkDOHEsf0De95HlQpSDMiahGGHKSwPTnGF+ LmZcVYAkjqsVdSm/sJsDTeVK3wa+tmrAJFps/hx5ghANkswLZhCys7OBJMMlONSpZj CAHj+a1zxV92Q== X-Nifty-SrcIP: [153.142.97.92] From: Masahiro Yamada To: linux-mtd@lists.infradead.org Subject: [PATCH v3 00/37] mtd: nand: denali: 2nd round of Denali NAND IP patch bomb Date: Thu, 30 Mar 2017 15:45:46 +0900 Message-Id: <1490856383-31560-1-git-send-email-yamada.masahiro@socionext.com> X-Mailer: git-send-email 2.7.4 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170329_234726_981279_4A7FAFAC X-CRM114-Status: GOOD ( 11.42 ) X-Spam-Score: -1.2 (-) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-1.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- 0.7 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Boris Brezillon , Richard Weinberger , Dinh Nguyen , Masahiro Yamada , Artem Bityutskiy , Cyrille Pitchen , linux-kernel@vger.kernel.org, Marek Vasut , devicetree@vger.kernel.org, Rob Herring , Masami Hiramatsu , Chuanxiao Dong , Jassi Brar , Brian Norris , Enrico Jorns , David Woodhouse , Graham Moore MIME-Version: 1.0 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+patch=linaro.org@lists.infradead.org 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. Outstanding changes are: - 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 18 patches were merged at v2. Here is the rest of the series. v1: https://lkml.org/lkml/2016/11/26/144 v2: https://lkml.org/lkml/2017/3/22/804 Masahiro Yamada (37): mtd: nand: relax ecc.read_page() return value for uncorrectable ECC mtd: nand: denali: allow to override mtd->name from label DT property mtd: nand: denali: remove meaningless pipeline read-ahead operation mtd: nand: denali: fix bitflips calculation in handle_ecc() mtd: nand: denali: fix erased page checking 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: 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: rework interrupt handling mtd: nand: denali: fix NAND_CMD_STATUS handling mtd: nand: denali: fix NAND_CMD_PARAM handling 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: allow drivers to request minimum alignment for passed buffer 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/denali.c | 1971 ++++++++++---------- drivers/mtd/nand/denali.h | 308 +-- drivers/mtd/nand/denali_dt.c | 90 +- drivers/mtd/nand/denali_pci.c | 10 +- drivers/mtd/nand/nand_base.c | 49 +- include/linux/mtd/nand.h | 4 +- 7 files changed, 1234 insertions(+), 1222 deletions(-) -- 2.7.4 ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/ Acked-by: Rob Herring