From patchwork Sun May 15 09:35:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Nazzareno Trimarchi X-Patchwork-Id: 1951 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 5F6663F18B for ; Sun, 15 May 2022 11:35:44 +0200 (CEST) Received: by mail-ed1-f70.google.com with SMTP id bc17-20020a056402205100b0042aa0e072d3sf1414747edb.17 for ; Sun, 15 May 2022 02:35:44 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1652607343; cv=pass; d=google.com; s=arc-20160816; b=Q8UW1CanIphZMecLaHkeFRK/f4FjhLMzfSuUu0NmXUxx0bWdm+dc9KGwAd/MT3kGtx Ln5ZY+l27A2pmcpv4HLzSgtkYNxWRz9Ojj//CeUdBygJSdSpTKLHpa5/YAq/21eJj9eX a+VIbkLehjENzr9Y7n1eYtOWsbIZcEPxTite3WIUIdxFaKjOn2MyNfMnyeyqhlO9jmUy YdhYj9dOag0d/URXsOkXEMTiYj/OUX1OJQyChvzKiPigxroWWU7BSLrvAQq6CkIvr6rE Wz1e0d2ixr9wIfOXT9Cc5w4aeMVKBAfzEEXb1UO32NI8ypr5I0tuOT7aB0iGnivxjP3o Qn9w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=dVToxQKoZp6lXFsKB3E2lrhRlsSdzs0C5buEpOBmP7g=; b=sCeG3k+odqIRXMxQcxvLdxgBS3O8ybRQCcIr9xTVs6DMKryyO7pZ6gqQj6bDN/+Cj+ AFbJUdT/F3R4w9WtJZ96u04D4TC+u+bDwaFpefaObpvE4hOwbVpr+IY2QFXMYbUuyUxs x8Es7H6vNpPrYe5qDEYrVOuoMywcUuWmA03+4rWx5O3UEZGpBqwXmLn8z3I5AkekE9BJ KAyChEpGSVXRHRqe6GxtOOJUZAbLX3utRTCo5/UnoT2+qaOpTi+uAhTpf4bA47aj/3K6 K3dIVuRttSw3wPV0ggxzOaQrg1OW5Aozk6PAJ/jabvHBRaWqYcfx1FLtXScr/MPIFYOH +O4w== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=XmqEpzgl; spf=pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=michael@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:list-post:list-help:list-archive :list-unsubscribe; bh=dVToxQKoZp6lXFsKB3E2lrhRlsSdzs0C5buEpOBmP7g=; b=rEET1U1sdhID2NRnjlNsvqcyY4dorHJ8R7P2U9DKhPB++kjWd9+bruKjMx7EyMaBrI ZHQm2JOnSHdRw0KqZ6Sr8CbDuBkPvn24KApWTBPXXG5yVFWFCPcnThlB5rTvjvfImQYU Kc/VBrLPSBPUb+d8HnvnUVuAPW1f/jp8XUAto= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :x-spam-checked-in-group:list-post:list-help:list-archive :list-unsubscribe; bh=dVToxQKoZp6lXFsKB3E2lrhRlsSdzs0C5buEpOBmP7g=; b=USaJlPiGKPWxA+R2yBkVmo0lc1iup5zWcd4zBPRaaCJQ+3QZcn4pZ1oieFmkMQxsek mbJVr/Ic9wxg4LVttA0SM4feqmZhAv4CtNmr6TTAtTu8xkn8pKnQhTIF2BbinV3QxRFs YzvIU1DmJFOJr/UEV9soQ4J/sFvU0UNavyFhKXjciHUe96YfNVQ2piQvothBO86YbcNb CcNBwJ/DYqB3um1MQMi7t+lgddQuGO1Lb/TfIO5m4dzqtD+IPLpJEjHMpJKtUN2t8g7C hUXR6f+mm1TAFE7LbIgylpauN6MWFrMqEQBnOKrIFltq6aEDgjvubWMohwxQEkVWYhGp e6FQ== X-Gm-Message-State: AOAM531ry3yh9RCnrnjm9I0ueVvKjkrB++VFmXZZ/Ar2HoyVA33p354k j0wMf43tpJPdzbbwbFaQeqNYIMl/ X-Google-Smtp-Source: ABdhPJzWPeQ4uAVzXbBvN2kFKiMp+IHUC/PXq6pcSx/N7nMXUvEHDr7j4vczfoxj98VvPr/3pdEkDw== X-Received: by 2002:a17:907:1622:b0:6fe:22bb:7f8 with SMTP id hb34-20020a170907162200b006fe22bb07f8mr3822273ejc.767.1652607343680; Sun, 15 May 2022 02:35:43 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a17:907:6e09:b0:6f3:ead4:abc6 with SMTP id sd9-20020a1709076e0900b006f3ead4abc6ls5999332ejc.5.gmail; Sun, 15 May 2022 02:35:42 -0700 (PDT) X-Received: by 2002:a17:907:6d84:b0:6f4:94e2:e708 with SMTP id sb4-20020a1709076d8400b006f494e2e708mr10618969ejc.199.1652607342499; Sun, 15 May 2022 02:35:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652607342; cv=none; d=google.com; s=arc-20160816; b=tbtrclJOESigWtxwC4olcmP0ZgAAwufZ1ggZ+2m26zCddCfzzm0PQ/TH9Q80znKkKW 4gbIRrq0KVS9++5fjJx0ffKSG94dX7FNi5LWakVrFk++Rt0HNM5ohx8QPZD6qvwfAFKY sDjIs1jf5V0E/e0AgOQIF4O9RCJi189cY6GLxi2WXOqeQXZfmnCzBkhtqJtD+SkS0lHi kEmffuu3k37u6Pa/4WJXdXOfVKDvYOoxfUx9P/xLSH58X7wXklPGOEX/zxr4TRbHekTq y/NK55CFj9MqwDGhcLa++SvYJ6B2NRCfzAOvJYX75/V0sqhFqQV1XNHQ1EQAIa1k0vg1 rCkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=3xnZ7oBQcAokRqXY4/fVenyG6mtAt/FB/4GOkpfAvAA=; b=OAVRLqsURXof+uZldgistOeoSosGn0Grljm9L8MO3fgSowuREUpftCk9NvjkOw5VI5 408Tsvt86/dxcylbWJTpuU4qS8EHdNEtlJFRINBQsOHxq1bCz6IlKCbCymJ/yfUnRBUq osaU6MT65iTuDyzmLkPtesisTTWYGWzmbDuG+mzhI3UUHAnQlXl72xmt1KvcMDGWIkDd 6XCsfL2VaBXr44fU8rpTvaxC+rtT3FStPvSHzApLBvhJ/6k1XcHoHi0XkMC0BmMWsTX3 rUHMnkFoZW6o+bhOHAlyM4ppjKGxD7Gh3D7u2a3bybunTzRKWHuB3tp2oSM2Y/T/LeEQ mOVA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=XmqEpzgl; spf=pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=michael@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id v7-20020a056402184700b00425e27f0595sor3545547edy.13.2022.05.15.02.35.42 for (Google Transport Security); Sun, 15 May 2022 02:35:42 -0700 (PDT) Received-SPF: pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Received: by 2002:a05:6402:3484:b0:428:1a5e:3d48 with SMTP id v4-20020a056402348400b004281a5e3d48mr7530235edc.401.1652607342255; Sun, 15 May 2022 02:35:42 -0700 (PDT) Received: from localhost.localdomain (mob-109-118-140-232.net.vodafone.it. [109.118.140.232]) by smtp.gmail.com with ESMTPSA id p6-20020a17090664c600b006f3ef214de8sm2516582ejn.78.2022.05.15.02.35.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 May 2022 02:35:40 -0700 (PDT) From: Michael Trimarchi To: Han Xu , U-Boot-Denx Cc: Ye Li , Stefano Babic , Miquel Raynal , Fabio Estevam , Dario Binacchi , Sean Anderson , linux-amarula@amarulasolutions.com, Jagan Teki , Ariel D'Alessandro , Tom Rini , Fabio Estevam , Tim Harvey Subject: [PATCH V4 1/5] nand: raw: mxs_nand: Fix specific hook registration Date: Sun, 15 May 2022 11:35:30 +0200 Message-Id: <20220515093534.1737172-2-michael@amarulasolutions.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220515093534.1737172-1-michael@amarulasolutions.com> References: <20220515093534.1737172-1-michael@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: michael@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=XmqEpzgl; spf=pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=michael@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , Move the hook after nand_scan_tail is called. The hook must be replaced to the mxs specific one but those must to be assignment later in the probe function. With this fix markbad is working again. Before this change: nand markbad 0xDEC00 NXS NAND: Writing OOB isn't supported NXS NAND: Writing OOB isn't supported block 0x000dec00 NOT marked as bad! ERROR 0 Cc: Han Xu Cc: Fabio Estevam Acked-by: Han Xu Tested-By: Tim Harvey Signed-off-by: Michael Trimarchi --- V3->V4: - none V2->V3: - Add tested-by from Tim - Add ack from Han Xu V1->V2: - Adjust the commit message - Add Cc Han Xu and Fabio --- drivers/mtd/nand/raw/mxs_nand.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/drivers/mtd/nand/raw/mxs_nand.c b/drivers/mtd/nand/raw/mxs_nand.c index ee5d7fde9c..53f24b9c4b 100644 --- a/drivers/mtd/nand/raw/mxs_nand.c +++ b/drivers/mtd/nand/raw/mxs_nand.c @@ -1246,22 +1246,6 @@ int mxs_nand_setup_ecc(struct mtd_info *mtd) /* Enable BCH complete interrupt */ writel(BCH_CTRL_COMPLETE_IRQ_EN, &bch_regs->hw_bch_ctrl_set); - /* Hook some operations at the MTD level. */ - if (mtd->_read_oob != mxs_nand_hook_read_oob) { - nand_info->hooked_read_oob = mtd->_read_oob; - mtd->_read_oob = mxs_nand_hook_read_oob; - } - - if (mtd->_write_oob != mxs_nand_hook_write_oob) { - nand_info->hooked_write_oob = mtd->_write_oob; - mtd->_write_oob = mxs_nand_hook_write_oob; - } - - if (mtd->_block_markbad != mxs_nand_hook_block_markbad) { - nand_info->hooked_block_markbad = mtd->_block_markbad; - mtd->_block_markbad = mxs_nand_hook_block_markbad; - } - return 0; } @@ -1467,6 +1451,22 @@ int mxs_nand_init_ctrl(struct mxs_nand_info *nand_info) if (err) goto err_free_buffers; + /* Hook some operations at the MTD level. */ + if (mtd->_read_oob != mxs_nand_hook_read_oob) { + nand_info->hooked_read_oob = mtd->_read_oob; + mtd->_read_oob = mxs_nand_hook_read_oob; + } + + if (mtd->_write_oob != mxs_nand_hook_write_oob) { + nand_info->hooked_write_oob = mtd->_write_oob; + mtd->_write_oob = mxs_nand_hook_write_oob; + } + + if (mtd->_block_markbad != mxs_nand_hook_block_markbad) { + nand_info->hooked_block_markbad = mtd->_block_markbad; + mtd->_block_markbad = mxs_nand_hook_block_markbad; + } + err = nand_register(0, mtd); if (err) goto err_free_buffers; From patchwork Sun May 15 09:35:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Nazzareno Trimarchi X-Patchwork-Id: 1952 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com [209.85.208.71]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 952A83F1F5 for ; Sun, 15 May 2022 11:35:46 +0200 (CEST) Received: by mail-ed1-f71.google.com with SMTP id h7-20020a056402094700b00425a52983dfsf7825421edz.8 for ; Sun, 15 May 2022 02:35:46 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1652607346; cv=pass; d=google.com; s=arc-20160816; b=gwF8xwJWovOdvSXzvMGCXOSX4EMvFdIELf9AI7rf+/v+SO5YN0qwB3qw7TlUJntrgf DWie0uAHkttkGdAqYbGVw1wIQolvnolvGrTULWBQMBRjlSjH8a39vU8mkX1JUDHPJfgF 2wD+R7sktayBcPmQwVqHwnMVbSKI8ZUSILKyX2oF1FLK0SXycvj9EgBUMEkK0qODXAAq STRdYltxxa41Aq7mOgV7mk8Hb5n/IJ5N2CkOiHl3BYL9A89N315F9JgphJzRpRiT76gv tYXVeBN0kzfteQzscHjrhc/ZfAreZPE7OuvgpaaVshbdBkjjF1osw4mLWRatp5n86bGT qFbw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=z2sBDyFkNrTp4iPUVnHLwp1l0cReaDzCIdIQXSnKWBc=; b=hQPQaUnKGSxatyMo30a2xzrq5x6sQWXZzOpcj9FXm/61hho0MoXd6BNc+PimsVXflB ET/6kd4VWJqS5zVS8shyxAt9Syb0T+EA/F32jnwXexUIePcEnA8fwxX0LcvcHrW+x+zu Nyrp7lbd2n7wrHuLpDp2qtrV/PQP0QHkMqXlV+lib7aZX+e5CE7gdVojQFMBfyvWw/zY lM+bVFc/dg0aaR5/4RZM9tbliO0ve6aGscol5+dYKQv96NnUg4aqtfgaGzdBOTcvDXya RKbOYzDcSCuwQ9I9rHuUeFoqUlhswZ6UpV3nXHxEPYjbST2SZ+KQF5xwryT+VcYsaeFH FASw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=pgGeQV7n; spf=pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=michael@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:list-post:list-help:list-archive :list-unsubscribe; bh=z2sBDyFkNrTp4iPUVnHLwp1l0cReaDzCIdIQXSnKWBc=; b=dXqM8dWI522X4T1MoL124D+KTwn38r8DEMyVpyjOmCk+3LY6izBUPR41hcTPJlWn3r Lfy6dWB6BE9jTNX9Zp6rhh/05JzRBoEtX57maXqW+4Wz5vOZgcYrThjxN2bUlJ4I5Qtu xGXGezxImFKU14GSkJqfDWk3SLUgZI0jcp0HY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :x-spam-checked-in-group:list-post:list-help:list-archive :list-unsubscribe; bh=z2sBDyFkNrTp4iPUVnHLwp1l0cReaDzCIdIQXSnKWBc=; b=YSUXiPCdM6az7kzxUdbU7kaqW0DprpoHP74kXPpYbMTo9YXSZVGHmq3q9+2pK2NOzW FUZJZE98IXPfIQsGG/Km254irR8hyA2vg9UHsUF18vxuzFZe2+F+EGkH8MIxAahBHUnE f1eAG2uy3EX99ehdZ2+25AjrbYdkLQoyKiXMxZJiVolZ0eTm41ViQU75l5+5xljAt49M xTJTQLdbrhQjniuJX60L6ifKClHClsbRz3+zK4FRhdV0tBNNRQ35HZ8iOQWRpRpU15mI JoQl2d+aKQZGm7+LIUGD2nwE+1L8SOMohyDIlyGv/epz0WjIxI9++8R8uOqkGK4d8hxj wDSw== X-Gm-Message-State: AOAM531z+UB1hjp81yNDssPdBGYVc/1Vqpvqspu3jaWQh214w2KmHLfp QmFgkl+GafEl0dVhATptRidOAuRe X-Google-Smtp-Source: ABdhPJx+9+bKqE4iVySxa+6WT2nOZ74FCZ0rSC9hYYjcU4jRBHvwE/Ozczu60EY5woccL64Hhr+XIw== X-Received: by 2002:a50:fe1a:0:b0:425:e276:5adf with SMTP id f26-20020a50fe1a000000b00425e2765adfmr7521919edt.284.1652607346209; Sun, 15 May 2022 02:35:46 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a05:6402:270b:b0:427:d070:5bfe with SMTP id y11-20020a056402270b00b00427d0705bfels3101996edd.0.gmail; Sun, 15 May 2022 02:35:45 -0700 (PDT) X-Received: by 2002:a05:6402:43c4:b0:41d:9403:8dca with SMTP id p4-20020a05640243c400b0041d94038dcamr7305153edc.184.1652607344913; Sun, 15 May 2022 02:35:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652607344; cv=none; d=google.com; s=arc-20160816; b=yCP1tGAPpaGDqKc1N0iKYK84H/YeUF/wY8jXyaAa4k2ScHO4NPlC1D3xYC5tLmCnit aBjTasvxozYJHHoJvvmgbzSeIM8V+zMiW4exCIKqYu9GA01USj+HQVpvgAB95lsmdzXB ttvnER5VVAcU0ypXJG7/1lEz0L1Vez+hSx1nUfYyMTF+urCBGmBi4AG3btCRMJtn8Vux F4fQnBP2KeldzFSYlvYY6GGEhPtKwcMXHCmC37HWJ3mqrWtg6mE1PUmBC9N6e+oHBqq3 kknaJobiaVf/BuJxchXmiq1NmhpF6A5bM0tUf3cQEIxaRb2N1Lh02HPBXRFuKNiHP6tT YfIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=YWmXIADIm9JSh8WtxwkqZljfFa3HcMwbtQZcEBjjleo=; b=hO+rkGkvUgK6a8WrXOndFPSZz1KkmkIq0ltu0A72TAzkIqRl9T6kUNkQmqyone9h4a a5cURjvzUTQ6sX6CshlxrB9gX6f0joam3RBqexydXgmc2ZhY4NkPX4Go1hQfl4cbJVJr EC1ABgSoXRWJW9LO0x0w4EJ2mb/MfyRyBKdTkX6LP1KxFyTpqWF4cyoXOEjMgSqxYWpK 7QOOMG63yxtbdC3s8PAG7ZhtjUCusArfeX0gq2SlC6aFSDaDdEQo4yxZiWdXdwM4BqFL P8gjyC6+7JoE8MOS2Ubhb45H7Ux0lnssoh2wuSoYStRYQVM7ZatwHustBiwxtmvwtj1H cNEQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=pgGeQV7n; spf=pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=michael@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id 22-20020a170906309600b006f4c2b0dbb8sor2581311ejv.67.2022.05.15.02.35.44 for (Google Transport Security); Sun, 15 May 2022 02:35:44 -0700 (PDT) Received-SPF: pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Received: by 2002:a17:906:c114:b0:6f5:db6f:71a1 with SMTP id do20-20020a170906c11400b006f5db6f71a1mr10866183ejc.338.1652607344534; Sun, 15 May 2022 02:35:44 -0700 (PDT) Received: from localhost.localdomain (mob-109-118-140-232.net.vodafone.it. [109.118.140.232]) by smtp.gmail.com with ESMTPSA id p6-20020a17090664c600b006f3ef214de8sm2516582ejn.78.2022.05.15.02.35.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 May 2022 02:35:43 -0700 (PDT) From: Michael Trimarchi To: Han Xu , U-Boot-Denx Cc: Ye Li , Stefano Babic , Miquel Raynal , Fabio Estevam , Dario Binacchi , Sean Anderson , linux-amarula@amarulasolutions.com, Jagan Teki , Ariel D'Alessandro , Tom Rini , Fabio Estevam , Tim Harvey Subject: [PATCH V4 2/5] mtd: nand: mxs_nand_spl: Fix bad block skipping Date: Sun, 15 May 2022 11:35:31 +0200 Message-Id: <20220515093534.1737172-3-michael@amarulasolutions.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220515093534.1737172-1-michael@amarulasolutions.com> References: <20220515093534.1737172-1-michael@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: michael@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=pgGeQV7n; spf=pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=michael@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , The specific implementation was having bug. Those bugs are since the beginning of the implementation. Some manufactures can already experience this bug in their SPL code. This bug can be more visible on architecture that has complicated boot process like imx8mn. Older version of uboot can be affected if the bad block appear in correspoding of the beginning of u-boot image. In order to adjust the function we scan from the first erase block. The problematic part of old code was in this part: while (is_badblock(mtd, offs, 1)) { page = page + nand_page_per_block; /* Check i we've reached the end of flash. */ if (page >= mtd->size >> chip->page_shift) { free(page_buf); return -ENOMEM; } } Even we fix it adding increment of the offset of one erase block size , we don't fix the problem, because the first erase block where the image start is not checked. The code was tested on an imx8mn where the boot rom api was not able to skip it. This code is used by other architecures like imx6 and imx8mm Cc: Han Xu Cc: Fabio Estevam Acked-by: Han Xu Tested-By: Tim Harvey Signed-off-by: Michael Trimarchi --- V3->V4: - none V2->V3: - Add tested-by from Tim - Add ack from Han Xu - Rework english of commit message V1->V2: - Adjust the commit message - Add Cc Han Xu and Fabio - fix size >= 0 to > 0 --- drivers/mtd/nand/raw/mxs_nand_spl.c | 90 ++++++++++++++++------------- 1 file changed, 49 insertions(+), 41 deletions(-) diff --git a/drivers/mtd/nand/raw/mxs_nand_spl.c b/drivers/mtd/nand/raw/mxs_nand_spl.c index 59a67ee414..2bfb181007 100644 --- a/drivers/mtd/nand/raw/mxs_nand_spl.c +++ b/drivers/mtd/nand/raw/mxs_nand_spl.c @@ -218,14 +218,14 @@ void nand_init(void) mxs_nand_setup_ecc(mtd); } -int nand_spl_load_image(uint32_t offs, unsigned int size, void *buf) +int nand_spl_load_image(uint32_t offs, unsigned int size, void *dst) { - struct nand_chip *chip; - unsigned int page; + unsigned int sz; + unsigned int block, lastblock; + unsigned int page, page_offset; unsigned int nand_page_per_block; - unsigned int sz = 0; + struct nand_chip *chip; u8 *page_buf = NULL; - u32 page_off; chip = mtd_to_nand(mtd); if (!chip->numchips) @@ -235,47 +235,42 @@ int nand_spl_load_image(uint32_t offs, unsigned int size, void *buf) if (!page_buf) return -ENOMEM; - page = offs >> chip->page_shift; - page_off = offs & (mtd->writesize - 1); + /* offs has to be aligned to a page address! */ + block = offs / mtd->erasesize; + lastblock = (offs + size - 1) / mtd->erasesize; + page = (offs % mtd->erasesize) / mtd->writesize; + page_offset = offs % mtd->writesize; nand_page_per_block = mtd->erasesize / mtd->writesize; - debug("%s offset:0x%08x len:%d page:%x\n", __func__, offs, size, page); - - while (size) { - if (mxs_read_page_ecc(mtd, page_buf, page) < 0) - return -1; - - if (size > (mtd->writesize - page_off)) - sz = (mtd->writesize - page_off); - else - sz = size; - - memcpy(buf, page_buf + page_off, sz); - - offs += mtd->writesize; - page++; - buf += (mtd->writesize - page_off); - page_off = 0; - size -= sz; - - /* - * Check if we have crossed a block boundary, and if so - * check for bad block. - */ - if (!(page % nand_page_per_block)) { - /* - * Yes, new block. See if this block is good. If not, - * loop until we find a good block. - */ - while (is_badblock(mtd, offs, 1)) { - page = page + nand_page_per_block; - /* Check i we've reached the end of flash. */ - if (page >= mtd->size >> chip->page_shift) { + while (block <= lastblock && size > 0) { + if (!is_badblock(mtd, mtd->erasesize * block, 1)) { + /* Skip bad blocks */ + while (page < nand_page_per_block) { + int curr_page = nand_page_per_block * block + page; + + if (mxs_read_page_ecc(mtd, page_buf, curr_page) < 0) { free(page_buf); - return -ENOMEM; + return -EIO; } + + if (size > (mtd->writesize - page_offset)) + sz = (mtd->writesize - page_offset); + else + sz = size; + + memcpy(dst, page_buf + page_offset, sz); + dst += sz; + size -= sz; + page_offset = 0; + page++; } + + page = 0; + } else { + lastblock++; } + + block++; } free(page_buf); @@ -294,6 +289,19 @@ void nand_deselect(void) u32 nand_spl_adjust_offset(u32 sector, u32 offs) { - /* Handle the offset adjust in nand_spl_load_image,*/ + unsigned int block, lastblock; + + block = sector / mtd->erasesize; + lastblock = (sector + offs) / mtd->erasesize; + + while (block <= lastblock) { + if (is_badblock(mtd, block * mtd->erasesize, 1)) { + offs += mtd->erasesize; + lastblock++; + } + + block++; + } + return offs; } From patchwork Sun May 15 09:35:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Nazzareno Trimarchi X-Patchwork-Id: 1953 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id D37A13F18B for ; Sun, 15 May 2022 11:35:48 +0200 (CEST) Received: by mail-ed1-f72.google.com with SMTP id r8-20020a056402018800b00428b43999fesf7801914edv.5 for ; Sun, 15 May 2022 02:35:48 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1652607348; cv=pass; d=google.com; s=arc-20160816; b=n1TLy6FqCIDllsJWZnPj5KQmropKIoQcAXo+gHfsmsJAfcu1kzhyTeezemIQ6asQkX NbPUQhZa5Paovpf979UUbic6mGFJIc5KBXvYu6OHKguihztFlklTk+VuRV8X3ePltxBH dYEe56QzyPt9tK6zrKfVxXdrFASyWq2AFwWs/bLEc9s1lxT6BUe3imEuROZSJ6cAOtS3 P/JHwRzmzDGrmFbr0XUQWEr0FaxwHsK7cWAoyj5rqs53xtUc/UIzzr3iI12oRbWYyd04 Z6B47eWY98dFwdd4rbyQ8x+xRPjOVaeM5IuXYcOK3MmsdlfcVi6ij5q3ahtz5neZGYXY +9lQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=NGkYUA9IgD7ZaTlXNkG3L06LQgBIh2Ozso3u6c9bwXw=; b=cjl3ZwYCFW3riZxYaOq13jMk3CUA7BO05exDgOey80IYXhVKo9SwRqDL/s3WQL7Bow ckUGHIPcOSocN0O+nUzMNdW+F4ubpj/qYYqHlKX4zC8Gjf8WrnT0RaCUrBt4YB5PVKBE Lh2xlFv61/Uv8OuDNXYo0zkP8g+qY7Yj/Pnc6Y+mZFaFHC6xawz73Pm5IuZ5Ft56/SGR NDHUtuuoywbNm7iJn0uaBYZQySeJvDB8l7Va6fC8/LpP+pdGBU8lGG05+g0EhYNfbV8g 7UwwXds4UEtQYkSI6FF5cdeYD97ioWdsqLWMziCzyt8WnOPp7dL8q5Byj/kMpJo6IVTi dh9g== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=U0dlHY63; spf=pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=michael@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:list-post:list-help:list-archive :list-unsubscribe; bh=NGkYUA9IgD7ZaTlXNkG3L06LQgBIh2Ozso3u6c9bwXw=; b=c1arqhPorWPPOQRsbKXJKT/Mes54HDjXb/f8IpoXtrRgXSc4+VHGO7UUDf2MhwbSiR GwIXYNApo3lPZxmZs59Xxg1R8RYq5b3DzxTPgBsF3lFs3Oatpcd0aS4W1WRbW+bRCJlr zfSX+un51Y5Any3mswgh3XW5bAeynHia5Hi2I= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :x-spam-checked-in-group:list-post:list-help:list-archive :list-unsubscribe; bh=NGkYUA9IgD7ZaTlXNkG3L06LQgBIh2Ozso3u6c9bwXw=; b=q5k8YqyM9wdCHo42miEB/aUWj0e1u6M6ciIzo/K3DqbCNClwh5gKqfUzyy7BUex/vu u3Gk3CLXQNpdDPZfaglmSAqkxAF3aXHjjcndsA1rZXII7Nf2EL4zz8JjhedVit8+RayS et+FjaGgC8DkQo4oXsaQ6F25av+IhzyxGQTemrVrJoBVGA5N+44a8ErostOuO3KkaAQ3 ex8ZrceQnomCB2S/aTpHdomGlcxsgvOFiR+/zua0go2we3izknNOBo7CC4OhWat2+jXf pZo70a1SXfK3CZjTfFCgSTRESWiRKX5aYgZHRydOfrJrXC6auSbFzyv9hQW3P3iVrWt9 3+HQ== X-Gm-Message-State: AOAM530kJUPYugrGZswaYSee9p6qTvbKtXwqsWEw/BQZ/OGYEsWVnRRM xULus/5ET6KjFT02tjffJsRBFKdF X-Google-Smtp-Source: ABdhPJx9SpAVWH/p3Cf1IN0gL/053FSPIQFOshKljggL+rYa2mWmiIP7keOeWBc7SUnfBYM22IhXeA== X-Received: by 2002:a17:907:16ac:b0:6f4:60e1:723b with SMTP id hc44-20020a17090716ac00b006f460e1723bmr10967910ejc.272.1652607348370; Sun, 15 May 2022 02:35:48 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a05:6402:26d2:b0:428:f87:ccd8 with SMTP id x18-20020a05640226d200b004280f87ccd8ls3101792edd.1.gmail; Sun, 15 May 2022 02:35:47 -0700 (PDT) X-Received: by 2002:a05:6402:2710:b0:427:d087:b with SMTP id y16-20020a056402271000b00427d087000bmr7588687edd.11.1652607347187; Sun, 15 May 2022 02:35:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652607347; cv=none; d=google.com; s=arc-20160816; b=MWPJvvKutT5KZ/9eNo7evEjlkuHaW7xAfoQDarymlGk+f+E4OKSi+GONuoUfq4qdpY LXZ5TA+v9I3GPGNqJ3EQeXWaYCZtymFV7Trq7CcHDMtdXCZorubwdi39ff72sRye4wvp 0TrWyMihZRaSs/9TRNb/w37iNKVpFaLsJsqo8c3kZYwiGNvghMwrNJNWI6JZB2grmVNW 6i3yalRsPrU4uVy78/R+KnpjcYX6uqGAiToKEJ1g75fUFsnuQtxrH8Dz876/qp3+TTbF btiXxsiAbXYhmxL/DKLNT5vkvy3MvsL09h+iN7VG2PPyh+ed9yOof+DGHar5aDpPLNxb vk4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=t5a7/1Ug70eiPR+eA+idZWDvK7u/qPwhFkVCMusaVJ0=; b=nQyStYtuI/yKgCGgXmUgAEC+ETM0bUQO16CRg3c71bJTySOtSUEEgWbiGhNz29WTAI LlrRXNz0/q+FpTCNFU2KzACgHvRbUHwhtwmwFEuVazsH49jtJBLCsRtc8i6ZVlrB9nuM RRHkfiSk7PfofKQG0Y3nhEr7abyxQXa0URLyvQ0ey58pUD9GbpDFWJ5SwcDiVEZ/DF1l OPz9IX+YXXnQEJytVnWv39CFogExv6gT/goB363eul8Asvj4BrTXXVLHlQWqstpZRr6L 3xFAQP2TLqj0/7jLwfqcHxWuwmdTh0NCvDlVofufBDDzgOdzmXOCcYRVX2JiEVLeMAk3 yXjg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=U0dlHY63; spf=pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=michael@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id e11-20020a170906648b00b006e7fd3de9f6sor2649967ejm.49.2022.05.15.02.35.47 for (Google Transport Security); Sun, 15 May 2022 02:35:47 -0700 (PDT) Received-SPF: pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Received: by 2002:a17:907:968d:b0:6f4:9f9e:3e5f with SMTP id hd13-20020a170907968d00b006f49f9e3e5fmr11315583ejc.540.1652607346927; Sun, 15 May 2022 02:35:46 -0700 (PDT) Received: from localhost.localdomain (mob-109-118-140-232.net.vodafone.it. [109.118.140.232]) by smtp.gmail.com with ESMTPSA id p6-20020a17090664c600b006f3ef214de8sm2516582ejn.78.2022.05.15.02.35.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 May 2022 02:35:46 -0700 (PDT) From: Michael Trimarchi To: Han Xu , U-Boot-Denx Cc: Ye Li , Stefano Babic , Miquel Raynal , Fabio Estevam , Dario Binacchi , Sean Anderson , linux-amarula@amarulasolutions.com, Jagan Teki , Ariel D'Alessandro , Tom Rini , Tim Harvey Subject: [PATCH V4 3/5] arm: mach-imx: cmd_nandbcb fix bad block handling Date: Sun, 15 May 2022 11:35:32 +0200 Message-Id: <20220515093534.1737172-4-michael@amarulasolutions.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220515093534.1737172-1-michael@amarulasolutions.com> References: <20220515093534.1737172-1-michael@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: michael@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=U0dlHY63; spf=pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=michael@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , The badblock should be skipped properly in reading and writing. Fix the logic. The bcb struct is written, skipping the bad block, so we need to read using the same logic. This was tested create bad block in the area and then flash it and read it back. Acked-by: Han Xu Tested-By: Tim Harvey Signed-off-by: Michael Trimarchi --- V3->V4: - none V2->V3: - Add tested-by from Tim - Add ack from Han Xu V1->V2: - Adjust the commit message - Add Cc Han Xu and Fabio - move out from RFC --- arch/arm/mach-imx/cmd_nandbcb.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/arch/arm/mach-imx/cmd_nandbcb.c b/arch/arm/mach-imx/cmd_nandbcb.c index f119e9f88d..c54f52b343 100644 --- a/arch/arm/mach-imx/cmd_nandbcb.c +++ b/arch/arm/mach-imx/cmd_nandbcb.c @@ -506,10 +506,6 @@ static int read_fcb(struct boot_config *boot_cfg, struct fcb_block *fcb, int ret = 0; mtd = boot_cfg->mtd; - if (mtd_block_isbad(mtd, off)) { - printf("Block %d is bad, skipped\n", (int)CONV_TO_BLOCKS(off)); - return 1; - } fcb_raw_page = kzalloc(mtd->writesize + mtd->oobsize, GFP_KERNEL); if (!fcb_raw_page) { @@ -530,7 +526,7 @@ static int read_fcb(struct boot_config *boot_cfg, struct fcb_block *fcb, else if (plat_config.misc_flags & FCB_ENCODE_BCH_40b) mxs_nand_mode_fcb_40bit(mtd); - ret = nand_read(mtd, off, &size, (u_char *)fcb); + ret = nand_read_skip_bad(mtd, off, &size, NULL, mtd->size, (u_char *)fcb); /* switch BCH back */ mxs_nand_mode_normal(mtd); @@ -617,6 +613,7 @@ static int write_fcb(struct boot_config *boot_cfg, struct fcb_block *fcb) for (i = 0; i < g_boot_search_count; i++) { if (mtd_block_isbad(mtd, off)) { printf("Block %d is bad, skipped\n", i); + off += mtd->erasesize; continue; } @@ -676,20 +673,15 @@ static int read_dbbt(struct boot_config *boot_cfg, struct dbbt_block *dbbt, void *dbbt_data_page, loff_t off) { size_t size; + size_t actual_size; struct mtd_info *mtd; loff_t to; int ret; mtd = boot_cfg->mtd; - if (mtd_block_isbad(mtd, off)) { - printf("Block %d is bad, skipped\n", - (int)CONV_TO_BLOCKS(off)); - return 1; - } - size = sizeof(struct dbbt_block); - ret = nand_read(mtd, off, &size, (u_char *)dbbt); + ret = nand_read_skip_bad(mtd, off, &size, &actual_size, mtd->size, (u_char *)dbbt); printf("NAND DBBT read from 0x%llx offset 0x%zx read: %s\n", off, size, ret ? "ERROR" : "OK"); if (ret) @@ -697,9 +689,9 @@ static int read_dbbt(struct boot_config *boot_cfg, struct dbbt_block *dbbt, /* dbbtpages == 0 if no bad blocks */ if (dbbt->dbbtpages > 0) { - to = off + 4 * mtd->writesize; + to = off + 4 * mtd->writesize + actual_size - size; size = mtd->writesize; - ret = nand_read(mtd, to, &size, dbbt_data_page); + ret = nand_read_skip_bad(mtd, to, &size, NULL, mtd->size, dbbt_data_page); printf("DBBT data read from 0x%llx offset 0x%zx read: %s\n", to, size, ret ? "ERROR" : "OK"); @@ -729,6 +721,7 @@ static int write_dbbt(struct boot_config *boot_cfg, struct dbbt_block *dbbt, if (mtd_block_isbad(mtd, off)) { printf("Block %d is bad, skipped\n", (int)(i + CONV_TO_BLOCKS(off))); + off += mtd->erasesize; continue; } From patchwork Sun May 15 09:35:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Nazzareno Trimarchi X-Patchwork-Id: 1954 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-ej1-f71.google.com (mail-ej1-f71.google.com [209.85.218.71]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 88E0C3F1F5 for ; Sun, 15 May 2022 11:35:51 +0200 (CEST) Received: by mail-ej1-f71.google.com with SMTP id gn26-20020a1709070d1a00b006f453043956sf4956720ejc.15 for ; Sun, 15 May 2022 02:35:51 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1652607351; cv=pass; d=google.com; s=arc-20160816; b=HFKW2VhIxPLjXEhxm3dM9WRqEwnRLvcku6gBkarrrTvBJYfc+/IXhCBvs0RXkmMq/S mQ4PrQztG7kY6fr2tzOIrME5a+1/t01Na9aLZewZGGM553akxG/lSTAwjktu4PdGGyVK dLMxVKHQK+AB96gRAWdu5KotftnZj+/kgNB6pSOnur77K+dRZAHiTp5SXbtMBj2UG7H2 54vb5xIxU3EtoarAGSF4JUIR/nuGCoW1upvFh+Y7LtjR9JdRd1Cu3j68OhzW8OBkIWcw wena5zKY3IeQv9f6gMNNZ1maSn6KaUHytcc6fWX9bgeoUKMrj5sM6yD32cukV+TcMzRO UVdg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=XHeUMEYiHDQ1i3NF7clSVP8an2qFDpTa82QhV4hi+V0=; b=rGZCXXGrM+42ZzkszHwS6ZEaTKgWdIfhzQQl1UVs++ZGLQCjr00Z7MyuIXQmKGMtMw uM8oZq2fnlLCMtXevqFydcFNeidfFCi7ZB1D60So4luaMCHcyo6qSg1sZAj9XQ7ZOXze 6rEBl/Ejp/yUghERgQm2nfEPFU/ujssQtAHl00J2cuXo1JtamkzWbRQDjxF4f8mu23Wn +UTnmrnaYb3JNbfR3KoRtUlqap6m+B16SWfmv3R42KVnCRKbcy62B22DpbF7T4jWYC36 yldPkyAw+HqU5Q8jSfLRNel70/xgitoCH+KwKju6Wt7O+SBj7oigddgv96nFSQ2xq5f0 bqMQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=ikLw7IIz; spf=pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=michael@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:list-post:list-help:list-archive :list-unsubscribe; bh=XHeUMEYiHDQ1i3NF7clSVP8an2qFDpTa82QhV4hi+V0=; b=eMT98jDuqXMbmuG7KqSLjdWt9bzgo+57O7i4W0P3Dwrwo71x9HGMc4VxUKrawTXoke 5TlbfuNxSd4nYwpsFDCJ6r9ctqnx5Go8oEN/upr39IecafBEjfaQ+qbm8f141xEMiluu B411FmZRBGOjn7OvbmB1lPEJ1F0bDBIYyeYCo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :x-spam-checked-in-group:list-post:list-help:list-archive :list-unsubscribe; bh=XHeUMEYiHDQ1i3NF7clSVP8an2qFDpTa82QhV4hi+V0=; b=Ii/6sfeosvgUFTDy4WddlXu7TDWgfclDvb6YPPHPhJkdo/EayiM7YNrr0s+lRlXYTN xMpbe9iWfDT0IkIr4aTXipk8ItQ9Wx1UNcvo1ZzqFiu08oA3T19bN42rWACbc1M1OPjW SFiYC2+KPege1nZd2xrxBh58gTVV1pwFls2fefhsXQ6AvsQlCyCw2GUMbZHlgDRksg0C 2/ySqE+esJ7xwcPc32vDCGxznpEHVQ9/yJ1ZbJzefNg4PcmRkyZjXBrLGc72lTb0yZMm I3Q6NbcM7Ee9jjIhkL/upGblmHMX8EYhOxkzICnWK2/Sn/wCNV6KL0Tq3eoTxN3wDRHh pb+Q== X-Gm-Message-State: AOAM5307xrYDq/SHsQE1eTFJty5ng+hjKOV4ZbqwcUS36Aw6r9rkAxue Y//8cwBkbPzCGXseFis5ZzKojLxT X-Google-Smtp-Source: ABdhPJyOjYtW73utRJQ902hvhtFD6n9vMArp4CjVVIJH5AFAS0lK38zYx6qGIvoSRdwzTimc7SU1YQ== X-Received: by 2002:a05:6402:1ac4:b0:425:cd55:a953 with SMTP id ba4-20020a0564021ac400b00425cd55a953mr7631203edb.192.1652607351258; Sun, 15 May 2022 02:35:51 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a17:907:7f1a:b0:6f4:7118:d7c7 with SMTP id qf26-20020a1709077f1a00b006f47118d7c7ls6008945ejc.1.gmail; Sun, 15 May 2022 02:35:50 -0700 (PDT) X-Received: by 2002:a17:907:d0c:b0:6f4:a5b9:3799 with SMTP id gn12-20020a1709070d0c00b006f4a5b93799mr10838065ejc.732.1652607349876; Sun, 15 May 2022 02:35:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652607349; cv=none; d=google.com; s=arc-20160816; b=tniIIDKm6F/+YaTVUHKCImaEzu6nDopuRJGuuJaoEGKzPKY3kncfFU/pwn5vpwsTMX DUkHejjehtdN58NHqO72Q6UJ6d1jjHahSLazYfyr+eUWijYbV+/9uaqfXlZbPoNbS+ZG 1mE2rMkVXcZ1MiyIRkGG9LBpStG/qeDpw4bHFLHs+wfdyfBVz30fJ213PzVRI24mfEED EFCH7OIyWRmoyxCeCuVCh5n7mki2TclIlN+nbD2Ah4vGevSD18vPZbLuURZ/KXaSGNFv 8iJBbzrtdDBEz0Ze1aaOX30voMd/tL5sBmrKp7D5w71542e6uqzx9DCM445+9RxtGtSI iUjw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=HIJm0hdkQ6uc0gFfWcYsba71RxUpTyUBv/+jqi+ooyw=; b=P0DmE4oUlPR5lNUsfYCg4JgJkE7lqI4ozWA8nlGxTHxw5Ej/IYs4rIjQUXmez3NAF2 3FZfDtP8Ns3b2uBjk4QiPVE/xw53G1Y7Rwj8a/TTPLWmbPspt2f2k7MmYkuDikY9p0UF 9FtjJ2Kg73Iug1lMEjKEq2DW2+MbH1Nt4vue1/+7OfCoRcfqCURNOPPnDSEZTUV5OQH0 XckzYASqUYQ6T/bzTwYO/3Iz335VG1x0m+Zsza+LpjTv151K1eBdHU/rM+9/EANqWUFF 5BGJ6jS5+nBH5DHfa0w0p/Hh5O3awG0Imk2qdMTIGSnY3G1FX6geVtJOv77dLliAdaDU PGZg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=ikLw7IIz; spf=pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=michael@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id cr19-20020a170906d55300b006e867333eeesor2576098ejc.16.2022.05.15.02.35.49 for (Google Transport Security); Sun, 15 May 2022 02:35:49 -0700 (PDT) Received-SPF: pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Received: by 2002:a17:906:4fd1:b0:6f3:be23:7ad5 with SMTP id i17-20020a1709064fd100b006f3be237ad5mr11198915ejw.264.1652607349590; Sun, 15 May 2022 02:35:49 -0700 (PDT) Received: from localhost.localdomain (mob-109-118-140-232.net.vodafone.it. [109.118.140.232]) by smtp.gmail.com with ESMTPSA id p6-20020a17090664c600b006f3ef214de8sm2516582ejn.78.2022.05.15.02.35.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 May 2022 02:35:49 -0700 (PDT) From: Michael Trimarchi To: Han Xu , U-Boot-Denx Cc: Ye Li , Stefano Babic , Miquel Raynal , Fabio Estevam , Dario Binacchi , Sean Anderson , linux-amarula@amarulasolutions.com, Jagan Teki , Ariel D'Alessandro , Tom Rini , Fabio Estevam , Tim Harvey Subject: [PATCH V4 4/5] spl: spl_nand: Fix bad block handling in fitImage Date: Sun, 15 May 2022 11:35:33 +0200 Message-Id: <20220515093534.1737172-5-michael@amarulasolutions.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220515093534.1737172-1-michael@amarulasolutions.com> References: <20220515093534.1737172-1-michael@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: michael@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=ikLw7IIz; spf=pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=michael@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , If the fitImage has some bad block in fit image area, the offset must be recalulcated. This should be done always. After implementing it in mxs now is possible to call the function even for that platform. Cc: Fabio Estevam Tested-By: Tim Harvey Reviewed-by: Tom Rini Signed-off-by: Michael Trimarchi --- V3->V4: - none V2->V3: - Add tested-by from Tim - Add ack from Han Xu V1->V2: - move out from RFC --- common/spl/spl_nand.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/common/spl/spl_nand.c b/common/spl/spl_nand.c index fc61b447a5..82a10ffa63 100644 --- a/common/spl/spl_nand.c +++ b/common/spl/spl_nand.c @@ -43,15 +43,12 @@ static ulong spl_nand_fit_read(struct spl_load_info *load, ulong offs, ulong size, void *dst) { int err; -#ifdef CONFIG_SYS_NAND_BLOCK_SIZE ulong sector; sector = *(int *)load->priv; - offs = sector + nand_spl_adjust_offset(sector, offs - sector); -#else offs *= load->bl_len; size *= load->bl_len; -#endif + offs = sector + nand_spl_adjust_offset(sector, offs - sector); err = nand_spl_load_image(offs, size, dst); if (err) return 0; From patchwork Sun May 15 09:35:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Nazzareno Trimarchi X-Patchwork-Id: 1955 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 5E6903F18B for ; Sun, 15 May 2022 11:35:54 +0200 (CEST) Received: by mail-ed1-f70.google.com with SMTP id s24-20020a05640217d800b00425e19e7deasf7745963edy.3 for ; Sun, 15 May 2022 02:35:54 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1652607353; cv=pass; d=google.com; s=arc-20160816; b=fA0WumsIN375NuiIs+TLaRim0F5DwbgYP93Ode7y0JZGA71bmVEKeLyqPmze1Gx7o0 MZjykjI4HFlqfgqo8eEVcrXZk8h8c1tuf/9tyw2DpFilQC0Ok7JNPwEcEZ25+xbraxEw A8fMgzGu5c4uXMYyyecbSuTR+7k6QSZGl0b/j+WqVllAl7eulWe3HzfTe059lRoYDbYX 8ktrYI+sCPYTSD7xw6QEkqDUgacJJOWn+406/b9tyO/C/R1PjdyNSPgis9TK395DTe6a 7h5MPGP4ZqVrVENH6kazYnjRmrEjF2KJMQWfmBNxNV+hoIGPUAWfXz+IOCBnvyYrtrsF +zVw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=5OE1i6Ud+PeNWHrXFSX9KXN9j7YErUXgaZPeioZhs1c=; b=N8NrzePtyZAIF7blukwNN8UIHFwPjQL47lcA23bzUp5PHdFysNfHwlNQ243kNVQSjk 6VnYDaUp7PFpAdxDGdXeFuaCl4k4VMAuSlSbTbYck1qpAryODnsOFOJVQuJxjcFkpBaY /IGGB7N5oQP8dn6nBj2okIAoN3bCXRfYsudTrMrUVI++amtMsoccbeK7zv9eFoSFey9t nS0V7aSAFyt4szdBdvzHr8DB9Ra5C+kS6vSWrdbVGfqAylmDsYU+kTH/BaN8kw8ruqF/ Rc8QiGpKVb7bl+yO0sc7La2w1R4T7BCzF1XHNuw09Yf0n/YTD+XrC7ueO26vHNCU02FH r6rA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=VDKNMBIo; spf=pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=michael@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:list-post:list-help:list-archive :list-unsubscribe; bh=5OE1i6Ud+PeNWHrXFSX9KXN9j7YErUXgaZPeioZhs1c=; b=V+CjfLZr/k6bKZLYi6bmGxr+qojEaNcw4YlMQiGdJzytOoDZk2wbXLAnYYnKYjaGQK Vb/A73/hxcwJ9ZhDxnGyH5LPPsfrCTeB918G84BFTJQkQGTg1sr/wOvStsvpWbLphhAo oQZcQ5YnGkRqZOhMnoHSB7fCOOWs16ELETZdI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :x-spam-checked-in-group:list-post:list-help:list-archive :list-unsubscribe; bh=5OE1i6Ud+PeNWHrXFSX9KXN9j7YErUXgaZPeioZhs1c=; b=JAfJo6e/mmycxp1OGpZDbbuEnew+lbHSjBCdmoYDPlRcBl59Yobb3WmFcx1T7JbwZQ 3R6//v4hRwpDfGH2Jd2R/1F8SF63josQxA/pD4wKweZRlHip5TxOTfa6pc3M55DTYUi1 rA2dqJrt61svbmljoH6yqmoF0aOCgY47Klf0z2lgO4Y+Fx556rNdUxCuEEeLQcGBLmiW CVlwc3nNHtg8ZTJPaPKXYbPWiHcnUdKq/xYvYPJpzuTvz0KanTu0hFbV6r3RYKl4V9Ew 8zQbunhH2ptTTJ3TA+QGhdm21bIcQrwLpnl+WU14I1MifcXVpm2IvHWUAUibpVF7VEvo AfCA== X-Gm-Message-State: AOAM530jA6EJOWJSXli5UCCo62sihBuBgz85YTM9jF5evw43qfqNSpbf g1dP7cmDnvtedH5LZVCTXtwi1MvU X-Google-Smtp-Source: ABdhPJwjms0GMnKbwD0lHidNQV6PKuDTIMl0S637ip8oH6rPkSvxkEbFS92CPQJ0abq7/0eaOiJ9Jw== X-Received: by 2002:a17:907:3f19:b0:6f5:6b2:9615 with SMTP id hq25-20020a1709073f1900b006f506b29615mr11444920ejc.659.1652607353771; Sun, 15 May 2022 02:35:53 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a17:907:7f1a:b0:6f4:7118:d7c7 with SMTP id qf26-20020a1709077f1a00b006f47118d7c7ls6008970ejc.1.gmail; Sun, 15 May 2022 02:35:52 -0700 (PDT) X-Received: by 2002:a17:906:4fd5:b0:6f8:5aa9:6f13 with SMTP id i21-20020a1709064fd500b006f85aa96f13mr11090018ejw.267.1652607352599; Sun, 15 May 2022 02:35:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652607352; cv=none; d=google.com; s=arc-20160816; b=DjTm6twBeyYw/Do7ZpEuS6lMXnJM8Evkvce66FW4O2j7IPYgBUj2c0BMgEd9MbDIQS ogPULF+DIu87kfaFOTNPhdbNQaNrNTlqxhovnmJzVPs23aRUiMLgSsGXs4Fi8KyF/Ax8 BNXfaNyEptEYbjQ7MmVJvv6AjdM0FgCw2eifELGNwFcmNzcmNN3P85T6tthdwKP2Kl7S Gqwjm/9ODlE62uy9bntiv3Mq4hfxC1qRFQpSY8J0vz6Xq7Z7LlTTkhJPMO4kErVt2/5O i7RaeWXYwjRXQoRzztbDce0+VjrVtKplyz2l5EMg5cuePnCwJOvJ1n1v7JPFopD6oQjE hMjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=mbjhTBV4XTaJwZYpjbu7yvB0TE9D8NnLKT3iIb8KdSg=; b=Tx/XJFQgQwIplgxQbW+Mp2AiSSenQZB4px+f4LpqiRYY+2Li7ifYgCzhGavEKjYspb 14CqfCa7SpooMfXQa1vfOqD6FUhBdmL8gTmWR/K+uJu/dxBPoUYpWNlNjVi4No+01OKS x5npv2YKkqzsgen1im7AX0RT63+6Abt0N4ZrSbBSwsCmjzKGOyey3CJn87B+99y18AYz 28VBeSq2/o3x2uckiqIuQ6p1AYBuGkywUkKD20GKFnHoeVZE3oBH2bHu804F/cALjfPJ i2n8Goha0iYhYJaow8xe9y7x7Bkaf8ZeuyL0a7gXQ2HldWhTJD+MImgvrXJWDQ7mpw0R pc3A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=VDKNMBIo; spf=pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=michael@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id a15-20020aa7d90f000000b00425bf0d5977sor3544392edr.25.2022.05.15.02.35.52 for (Google Transport Security); Sun, 15 May 2022 02:35:52 -0700 (PDT) Received-SPF: pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Received: by 2002:a05:6402:354a:b0:427:d0e1:8ef3 with SMTP id f10-20020a056402354a00b00427d0e18ef3mr7524166edd.66.1652607352325; Sun, 15 May 2022 02:35:52 -0700 (PDT) Received: from localhost.localdomain (mob-109-118-140-232.net.vodafone.it. [109.118.140.232]) by smtp.gmail.com with ESMTPSA id p6-20020a17090664c600b006f3ef214de8sm2516582ejn.78.2022.05.15.02.35.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 May 2022 02:35:51 -0700 (PDT) From: Michael Trimarchi To: Han Xu , U-Boot-Denx Cc: Ye Li , Stefano Babic , Miquel Raynal , Fabio Estevam , Dario Binacchi , Sean Anderson , linux-amarula@amarulasolutions.com, Jagan Teki , Ariel D'Alessandro , Tom Rini Subject: [PATCH V4 5/5] board: bsh: Switch to nand spl load instead of romapi Date: Sun, 15 May 2022 11:35:34 +0200 Message-Id: <20220515093534.1737172-6-michael@amarulasolutions.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220515093534.1737172-1-michael@amarulasolutions.com> References: <20220515093534.1737172-1-michael@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: michael@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=VDKNMBIo; spf=pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=michael@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , romapi is not eble to skip bad block so we need to workaround using the spl Signed-off-by: Michael Trimarchi --- board/bsh/imx8mn_smm_s2/spl.c | 3 +++ 1 file changed, 3 insertions(+) --- V3->V4: - none V2->V3: - Add to series and fix if condition V1->V2: - none --- diff --git a/board/bsh/imx8mn_smm_s2/spl.c b/board/bsh/imx8mn_smm_s2/spl.c index 0f61acc630..097b60c055 100644 --- a/board/bsh/imx8mn_smm_s2/spl.c +++ b/board/bsh/imx8mn_smm_s2/spl.c @@ -18,6 +18,9 @@ int spl_board_boot_device(enum boot_device boot_dev_spl) { + if (IS_ENABLED(CONFIG_NAND_MXS) && get_boot_device() != USB_BOOT) + return BOOT_DEVICE_NAND; + return BOOT_DEVICE_BOOTROM; }