From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id F2FFBC77B75 for ; Wed, 17 May 2023 13:31:07 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 682AE8622B; Wed, 17 May 2023 15:31:06 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=kernel.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.b="jciDf7iE"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id F1BE48620E; Wed, 17 May 2023 15:31:04 +0200 (CEST) Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id A173D8620E for ; Wed, 17 May 2023 15:31:01 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=kernel.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=rogerq@kernel.org Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id E46BB63F08; Wed, 17 May 2023 13:30:59 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 59D75C433D2; Wed, 17 May 2023 13:30:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1684330259; bh=Q4h6eCZw4GyhykrqkxBZtf6BEdJTTidSR7rt+0DzHg8=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=jciDf7iEDHQ8nvw5IzIE/BtMXUVADYR+TrsHHWZIBjt1JrWVwlNaOVGY5IppYi7bZ Qiix3F0skxPVEOI0j4ko+0jPQCBRFeucRF9SP7sGdlVFrLLu6DGr2BLjVNHpr5TupM k38QkuYVTDA+G/xb1cgIzVhTS7sE8kEPJdxlA2eGCLanafTon5YjpbUMXYl71+udiM AxrQJ0EjAdh2pXFT3OO0ss3KU/gwaa+wikZb4zbBY09RYCcB7HrSKH1Hs/yTqUEzoQ qXZwHM7LnShgJI7J0yqvO/IRBcUllzKG1nFMie8Fs6ZLW7SNyNhRvx/GVs4O5HTZ6k UrU352WCJruPw== Message-ID: <5e475f93-bf2c-fa28-f594-e8182e96c0e2@kernel.org> Date: Wed, 17 May 2023 16:30:55 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: U-Boot OMAP GPMC ECC change Content-Language: en-US To: Colin Foster Cc: Michael Trimarchi , Dario Binacchi , u-boot@lists.denx.de References: <1944d1d1-399d-dfde-16ae-21a00ff7fbe3@kernel.org> <9ec2a385-a991-c3c1-4bfe-18b79793688d@kernel.org> From: Roger Quadros In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Hi Colin, On 12/05/2023 19:05, Colin Foster wrote: > Hi Roger, > > On Fri, May 12, 2023 at 02:53:07PM +0300, Roger Quadros wrote: >> >> >> On 10/05/2023 18:38, Colin Foster wrote: >>> >>> This is still out-of-U-Boot. I have an include/configs/our_product.h >>> file with this: >>> >>> """ >>> #define CFG_SYS_NAND_ECCPOS {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, \ >>> 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, \ >>> 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, \ >>> 33, 34, 35, 36, 37, 38, 39, 40, 41, \ >>> 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, \ >>> 52, 53, 54, 55, 56, 57} >>> >>> #define CFG_SYS_NAND_ECCBYTES 14 >>> #define CFG_SYS_NAND_MAX_ECCPOS 57 >> >> This should be 56 i.e. (57 - 2 + 1) >> But it won't fix the issue you are facing. :P > > Oh, good catch. I know when I was trying to get this working I had to > play with these values quite a bit. I must have missed changing this at > one point. > >> >>> #define CFG_SYS_NAND_ECCSIZE 512 >>> #define CFG_SYS_NAND_MAX_OOBFREE 2 >>> """ >>> >>> >>>> Can you please point me to the Linux device tree file if it exists? >>> >>> This is the latest submission. Still not accepted - I need to find time >>> to button everything up and resubmit. My plan of attack was Kernel >>> Acceptance, then U-Boot. Unfortunately my company lets the pesky >>> "Shipping products" step get in the way :-) >>> >>> https://lkml.org/lkml/2023/2/22/939 >>> >>> Or if you just want the ECC part: >>> >>> + nandflash: nand@0,0 { >>> + compatible = "ti,omap2-nand"; >>> + reg = <0 0 4>; >>> + interrupt-parent = <&gpmc>; >>> + >>> + nand-bus-width = <16>; >>> + ti,nand-ecc-opt = "bch8"; >>> + ti,elm-id=<&elm>; >>> + linux,mtd-name = "micron,nand"; >>> >>> >>> I think that's all the info you're looking for. Let me know if I missed >>> something. >> >> Yes this is all I was looking for. >> >> Is CONFIG_NAND_OMAP_ECCSCHEME_BCH8_CODE_HW set in your u-boot config? > > Yes, it is set. I've attached our .config file. I just made a change to > CONFIG_NAND_OMAP_GPMC_PREFETCH as a test, which didn't fix the issue. > > And as another sanity check, I reverted the patch and have functionality > again: > I just tested this on AM335x EVM which uses BCH8_CODE_HW but 8-bit NAND part. I see that you are using 16-bit NAND. One more difference in u-boot configuration. For me: CONFIG_NAND_OMAP_GPMC_PREFETCH=y Not sure if that matters but let's keep it set for now. For debug can you please apply the patch (at end) to u-boot at commit a95410696d21 (before breakage) and run the test. Test procedure: > nand dump 0 > mmc dev 0 #replace 0 with whatever points to SD-card > nand read $loadaddr 0 800 #loadaddr is any address in RAM which is free for use. > fatwrite mmc 0:1 $loadaddr nand.org 800 - restore NAND page 0 > fatload mmc 0:1 $loadaddr nand.org > nand write $loadaddr 0 800 Now please run the below test on the offending commit 04fcd25873 after applying the patch (at end). > nand dump 0 > mmc dev 0 #replace 0 with whatever points to SD-card > fatload mmc 0:1 $loadaddr nand.org > nand write $loadaddr 0 800 Please send me the logs of both tests and the nand.org file so I can try it out here. Thanks! --- patch starts--- diff --git a/drivers/mtd/nand/raw/omap_gpmc.c b/drivers/mtd/nand/raw/omap_gpmc.c index be3cb3c601..ac06d5f019 100644 --- a/drivers/mtd/nand/raw/omap_gpmc.c +++ b/drivers/mtd/nand/raw/omap_gpmc.c @@ -300,6 +300,7 @@ static int omap_calculate_ecc(struct mtd_info *mtd, const uint8_t *dat, ecc_code[i++] = (val >> 0) & 0xFF; ptr--; } + printf("ecc: %x\n", val); break; case OMAP_ECC_BCH16_CODE_HW: val = readl(&gpmc_cfg->bch_result_4_6[0].bch_result_x[2]);