Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp921772ybb; Fri, 20 Mar 2020 10:15:40 -0700 (PDT) X-Google-Smtp-Source: ADFU+vsXlojJbBwYXNW7Mu1J1zntyIAksZZ6zwh+q+3jFINcb4+DXdJlI1ZwdMCGEtL9UGh1Nnn7 X-Received: by 2002:a05:6830:110c:: with SMTP id w12mr7132896otq.175.1584724539855; Fri, 20 Mar 2020 10:15:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1584724539; cv=none; d=google.com; s=arc-20160816; b=gy5FQqnzMVJ4bjpo5o7gCjeDaImCVctnrAUA8/mqyWmlhgL5T7/MMsf7SD5fnmnn4C 825+IEMWXcZ/AXXYJfwNuJTiUAfuGSUCtalpJLpPtmPcGbpRNMLV6nMjuAX0bjyb3v31 AyxAREzepIzkbPLtF7V3vhONqRp1SfB1gOyoGue/Tl77Dp/hOvDewvrU5KjiepEoe7qF fcS5VaXJ4rip/TAVsV6bsz13HU1kn1S/talh+FgqHXyUKQfcXTqxL83RrRB5WTqUg7NN t+ocy5NBx5QvqTzsTnuhh2FqNQvRBj9ohuV6b8QS5w3oqmcSHu0irLh5f2D9uwLoRhOX z0Tw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=Q+bz2ekkiHxnSiHeeJFNIg3JY1RigETenyfBl96NV74=; b=zB7ao+AnaoVh2jKr93FjyMcestD3d6/gDqGy0NWSvKBwQc/pp7hcigfl5GGMfZJD0p fAa2X3VHnWSfP+Vm1BoheHmG3yt7bUAMsxoXN8ujLa55EXw2hC6tBeuY0AGtyI5oqxnq bW/lxT3iqr1KTRHvkS5QTVbeRqSwCMbRSIoQjMZZ9KG7DoqfDeqgaVWF9LQjeS67sXhY N66Pudh7m0cUUSzf8yl8kflYoufA/EUP4cFL9zYYiSzQquO2IKAPUYzS3V6N24qt5G0S lJcllAVS8tCp5NzO9Y9fx8LHbeS3FSmxD2hu506sUICs5vKtaL8zyQUFpyEuOIQhNGdh tlNA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e4si3163517oib.135.2020.03.20.10.15.24; Fri, 20 Mar 2020 10:15:39 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727093AbgCTRPA (ORCPT + 99 others); Fri, 20 Mar 2020 13:15:00 -0400 Received: from mail-out.m-online.net ([212.18.0.9]:39498 "EHLO mail-out.m-online.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726973AbgCTRPA (ORCPT ); Fri, 20 Mar 2020 13:15:00 -0400 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 48kVl40Ggxz1qrfN; Fri, 20 Mar 2020 18:14:55 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 48kVl365vBz1qrbg; Fri, 20 Mar 2020 18:14:55 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id VjzbTi-s-X4U; Fri, 20 Mar 2020 18:14:54 +0100 (CET) X-Auth-Info: gttYc16SEC5d8uweW5kSjOieA30mQYvZH0Lr9j4MciM= Received: from [IPv6:::1] (unknown [195.140.253.167]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPSA; Fri, 20 Mar 2020 18:14:54 +0100 (CET) Subject: Re: [PATCH] mtd: rawnand: denali: add more delays before latching incoming data To: Miquel Raynal , Masahiro Yamada Cc: linux-mtd@lists.infradead.org, Richard Weinberger , Vignesh Raghavendra , linux-kernel@vger.kernel.org References: <20200316104307.1891-1-yamada.masahiro@socionext.com> <20200320181159.5004099f@xps13> From: Marek Vasut Message-ID: <2d02c851-4249-053c-99e9-69b209bffad2@denx.de> Date: Fri, 20 Mar 2020 18:14:53 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <20200320181159.5004099f@xps13> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 3/20/20 6:11 PM, Miquel Raynal wrote: > Hi Marek, > > Masahiro Yamada wrote on Mon, 16 Mar > 2020 19:43:07 +0900: > >> The Denali IP have several registers to specify how many clock cycles >> should be waited between falling/rising signals. You can improve the >> NAND access performance by programming these registers with optimized >> values. >> >> Because struct nand_sdr_timings represents the device requirement >> in pico seconds, denali_setup_data_interface() computes the register >> values by dividing the device timings with the clock period. >> >> Marek Vasut reported this driver in the latest kernel does not work >> on his SOCFPGA board. (The on-board NAND chip is mode 5) >> >> The suspicious parameter is acc_clks, so this commit relaxes it. >> >> The Denali NAND Flash Memory Controller User's Guide describes this >> register as follows: >> >> acc_clks >> signifies the number of bus interface clk_x clock cycles, >> controller should wait from read enable going low to sending >> out a strobe of clk_x for capturing of incoming data. >> >> Currently, acc_clks is calculated only based on tREA, the delay on the >> chip side. This does not include additional delays that come from the >> data path on the PCB and in the SoC, load capacity of the pins, etc. >> >> This relatively becomes a big factor on faster timing modes like mode 5. >> >> Before supporting the ->setup_data_interface() hook (e.g. Linux 4.12), >> the Denali driver hacks acc_clks in a couple of ways [1] [2] to support >> the timing mode 5. >> >> We would not go back to the hard-coded acc_clks, but we need to include >> this factor into the delay somehow. Let's say the amount of the additional >> delay is 10000 pico sec. >> >> In the new calculation, acc_clks is determined by timings->tREA_max + >> data_setup_on_host. >> >> Also, prolong the RE# low period to make sure the data hold is met. >> >> Finally, re-center the data latch timing for extra safety. >> >> [1] https://github.com/torvalds/linux/blob/v4.12/drivers/mtd/nand/denali.c#L276 >> [2] https://github.com/torvalds/linux/blob/v4.12/drivers/mtd/nand/denali.c#L282 >> >> Reported-by: Marek Vasut >> Signed-off-by: Masahiro Yamada >> --- > > Can you please give this patch a try and report the result? It's on my list, don't worry.