From nobody Mon Dec 15 11:21:45 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id ACDBAC7EE2E for ; Thu, 8 Jun 2023 16:31:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235213AbjFHQav (ORCPT ); Thu, 8 Jun 2023 12:30:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39806 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235242AbjFHQaU (ORCPT ); Thu, 8 Jun 2023 12:30:20 -0400 Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com [IPv6:2a00:1450:4864:20::52b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 81F0A2119 for ; Thu, 8 Jun 2023 09:30:18 -0700 (PDT) Received: by mail-ed1-x52b.google.com with SMTP id 4fb4d7f45d1cf-516af4a6d65so1551686a12.0 for ; Thu, 08 Jun 2023 09:30:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686241817; x=1688833817; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:subject:from:user-agent:mime-version:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=vsbB0vH5LsCtdiDXzwFJEcjnZ1bqcJw9xluET8hnyJA=; b=hkZlfrj08DAP1djftJGmo6uA8r5XJM3qG/0ifHmdMHjFMPJUiG7J4+Q2yw+TJjY5bw KwIxIe8huBGGJ6hrpnTKR/Q/elpqCWAhZAgWMWsbnYVO0Yh/dlQMKpzxinQRhM5Lt5SC 16O9tGJ2z3Z8zL8PCKQSfFc5xh7xgjuOWEp7VWn9xNRc/v3jMWtMd/cwx3pdJpMFQ+G0 VWmqCUpWgFkt19Y8W5FubQmpuT8X+/DlsTRUL4Kmg065yRmnI8Z1S8O+x+xJKIqJFyxM x6mkccOU7yqrG1K9P46lbK5raTGfY4CDv3r8uVnspCJY3SwHjxuqKuM4+VCMGdnmgRJY 0bzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686241817; x=1688833817; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:subject:from:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=vsbB0vH5LsCtdiDXzwFJEcjnZ1bqcJw9xluET8hnyJA=; b=MkPYSkQ6nCtssfshZAt2gQUSaWEcPtnJ5qKf09yqDyoNL4osvsUhHUbtE+m6RCt/aC nnD0eEwjG7xxDgR9iEqgOcdiVu14er1kez9zI7ZST5M+1570K2VeRwdnpomArOmy34Be FwbaL5/TtDIG0bCgC0n1PMxO2yzQtkt/OOOu30MX3bxqq7t8yQLhgcq7zN3ai+gxXqMo gar81lm7G8W7GTf8MIm2VTbvMyykMqjK6e/q+bB3WTRZLSo0pEjoSy3F4vkUSK7yoVGu HdW0G+XRHRrI/2S6rdAsQRlIusO01ssa/1fXN33zlMah7sY5hqaN/z8GjcNEwHFI0unD YpZw== X-Gm-Message-State: AC+VfDyuIX+Cm/miM+XhdAclLdRdrHvWeDqVdgDVku+oZdowbLUuNWjT YZEnl9hBAisLjQSZjFSNG2Y= X-Google-Smtp-Source: ACHHUZ6iMNVDTMeZdZzaR4cW1YP03V77zJAHgdi0d1rDcx262lUw2Jc2Wb32SEF9sMcsqRnfsVwf9A== X-Received: by 2002:a17:906:7955:b0:977:cc28:d974 with SMTP id l21-20020a170906795500b00977cc28d974mr168921ejo.14.1686241816863; Thu, 08 Jun 2023 09:30:16 -0700 (PDT) Received: from [192.168.2.2] (81-204-249-205.fixed.kpn.net. [81.204.249.205]) by smtp.gmail.com with ESMTPSA id b16-20020a170906151000b009746023de34sm32160ejd.150.2023.06.08.09.30.15 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 08 Jun 2023 09:30:16 -0700 (PDT) Message-ID: Date: Thu, 8 Jun 2023 18:30:15 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 From: Johan Jonker Subject: [PATCH v1 1/5] mtd: nand: raw: rockchip-nand-controller: copy hwecc PA data to oob_poi buffer To: miquel.raynal@bootlin.com Cc: richard@nod.at, vigneshr@ti.com, heiko@sntech.de, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, yifeng.zhao@rock-chips.com References: <19bf714a-43f9-c30a-8197-91aaaf4a6e5d@gmail.com> Content-Language: en-US In-Reply-To: <19bf714a-43f9-c30a-8197-91aaaf4a6e5d@gmail.com> Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Rockchip boot blocks are written per 4 x 512 byte sectors per page. Each page must have a page address (PA) pointer in OOB to the next page. Pages are written in a pattern depending on the NAND chip ID. This logic used to build a page pattern table is not fully disclosed and is not easy to fit in the MTD framework. The formula in rk_nfc_write_page_hwecc() function is not correct. Make hwecc and raw behavior identical. Generate boot block page address and pattern for hwecc in user space and copy PA data to/from the last 4 bytes in the chip->oob_poi data layout. Signed-off-by: Johan Jonker --- .../mtd/nand/raw/rockchip-nand-controller.c | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/drivers/mtd/nand/raw/rockchip-nand-controller.c b/drivers/mtd/= nand/raw/rockchip-nand-controller.c index 2312e2736..cafccc324 100644 --- a/drivers/mtd/nand/raw/rockchip-nand-controller.c +++ b/drivers/mtd/nand/raw/rockchip-nand-controller.c @@ -597,7 +597,7 @@ static int rk_nfc_write_page_hwecc(struct nand_chip *ch= ip, const u8 *buf, int pages_per_blk =3D mtd->erasesize / mtd->writesize; int ret =3D 0, i, boot_rom_mode =3D 0; dma_addr_t dma_data, dma_oob; - u32 reg; + u32 tmp; u8 *oob; nand_prog_page_begin_op(chip, page, 0, NULL, 0); @@ -624,6 +624,13 @@ static int rk_nfc_write_page_hwecc(struct nand_chip *c= hip, const u8 *buf, * * 0xFF 0xFF 0xFF 0xFF | BBM OOB1 OOB2 OOB3 | ... * + * The code here just swaps the first 4 bytes with the last + * 4 bytes without losing any data. + * + * The chip->oob_poi data layout: + * + * BBM OOB1 OOB2 OOB3 |......| PA0 PA1 PA2 PA3 + * * Configure the ECC algorithm supported by the boot ROM. */ if ((page < (pages_per_blk * rknand->boot_blks)) && @@ -634,21 +641,17 @@ static int rk_nfc_write_page_hwecc(struct nand_chip *= chip, const u8 *buf, } for (i =3D 0; i < ecc->steps; i++) { - if (!i) { - reg =3D 0xFFFFFFFF; - } else { + if (!i) + oob =3D chip->oob_poi + (ecc->steps - 1) * NFC_SYS_DATA_SIZE; + else oob =3D chip->oob_poi + (i - 1) * NFC_SYS_DATA_SIZE; - reg =3D oob[0] | oob[1] << 8 | oob[2] << 16 | - oob[3] << 24; - } - if (!i && boot_rom_mode) - reg =3D (page & (pages_per_blk - 1)) * 4; + tmp =3D oob[0] | oob[1] << 8 | oob[2] << 16 | oob[3] << 24; if (nfc->cfg->type =3D=3D NFC_V9) - nfc->oob_buf[i] =3D reg; + nfc->oob_buf[i] =3D tmp; else - nfc->oob_buf[i * (oob_step / 4)] =3D reg; + nfc->oob_buf[i * (oob_step / 4)] =3D tmp; } dma_data =3D dma_map_single(nfc->dev, (void *)nfc->page_buf, @@ -811,12 +814,17 @@ static int rk_nfc_read_page_hwecc(struct nand_chip *c= hip, u8 *buf, int oob_on, goto timeout_err; } - for (i =3D 1; i < ecc->steps; i++) { - oob =3D chip->oob_poi + (i - 1) * NFC_SYS_DATA_SIZE; + for (i =3D 0; i < ecc->steps; i++) { + if (!i) + oob =3D chip->oob_poi + (ecc->steps - 1) * NFC_SYS_DATA_SIZE; + else + oob =3D chip->oob_poi + (i - 1) * NFC_SYS_DATA_SIZE; + if (nfc->cfg->type =3D=3D NFC_V9) tmp =3D nfc->oob_buf[i]; else tmp =3D nfc->oob_buf[i * (oob_step / 4)]; + *oob++ =3D (u8)tmp; *oob++ =3D (u8)(tmp >> 8); *oob++ =3D (u8)(tmp >> 16); -- 2.30.2 From nobody Mon Dec 15 11:21:45 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2AA28C7EE29 for ; Thu, 8 Jun 2023 16:31:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234940AbjFHQat (ORCPT ); Thu, 8 Jun 2023 12:30:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39930 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235465AbjFHQac (ORCPT ); Thu, 8 Jun 2023 12:30:32 -0400 Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com [IPv6:2a00:1450:4864:20::12b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 22B9419B for ; Thu, 8 Jun 2023 09:30:31 -0700 (PDT) Received: by mail-lf1-x12b.google.com with SMTP id 2adb3069b0e04-4f60a27c4a2so975552e87.2 for ; Thu, 08 Jun 2023 09:30:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686241829; x=1688833829; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:subject:from:user-agent:mime-version:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=2JEi90Ldlhgb1TX3KGxyOhRscyzL8bDaJwIjdpZwAHM=; b=oiNID0CUe1AWbiikTsKX2eDTJ0S9WSJOOdI2miZOoBfeO5yy93DYpwIqMc192Y3JFQ vK5U1z2x7zv6jn0X7WqLjBW5Co7px5er5ntKxr3Hvcee/IVS4/XBk7h6XkGh/gAQNM9r BrApdp1SdAquHLYanvievnjMvG/N0gj63BNWmPusVw2PFP4DwprMzwfrz7nJPvIylV85 RaGQwFqelBeoorNKYr+zdQG5jDevAGbh2PTGejNT3MHLBt8J3Ag0DuPIdzKEehoCnP5n T2Lf65eyjyEcAVTRdH08gGjOFSIpdgOxuNpPAxkZGpCvWf0JzFq4xUYkOFqJaRNNDsp6 sqzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686241829; x=1688833829; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:subject:from:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=2JEi90Ldlhgb1TX3KGxyOhRscyzL8bDaJwIjdpZwAHM=; b=hJoY6oFbPnMHfFz+mQSX0JhsE7vfoUgYzbQQntQrFQDemYGEzCHjTK90PrJFdxarFM e1JCHspN6oO/RMwollQ9uUTdVV3lfr61NNvOJum5Wbft6y7XGJerBX40uKtqL1akaCb6 lkT9VT6mhhy3U3JWPu40trKm9eDwTPjf1OAxM9ZN+p3P2ANuMgFEHhmTFgqg5rAp0+p2 IE9pDDmdSFQuyn45SQP/Sz2gUHFmUO75UhwKjAOrnpJWX1qdbvK6RvWOQz24gBrdsG9v oDqhegGybOSvqGAwnoS4BrT6pnns1P5Yl/X/8BDSWJkaE/0I7ngtchP45Gl/oU3liidQ xQcQ== X-Gm-Message-State: AC+VfDxYqN7ZEFJl1AIXP9E9sRjth83F0bow5CZ2mJ3s23wN2CYLruRX PXdnPmNsjGAt8zQREJQL04k= X-Google-Smtp-Source: ACHHUZ6klAVFi77hcHpFJEJ4Ipf8Zzlq9+RqBHfp6OUAfEq7a2ufitVsxLKZ+8168eWyQSz2KBEiqg== X-Received: by 2002:a05:6512:14b:b0:4f4:4cd4:2586 with SMTP id m11-20020a056512014b00b004f44cd42586mr3699557lfo.20.1686241829063; Thu, 08 Jun 2023 09:30:29 -0700 (PDT) Received: from [192.168.2.2] (81-204-249-205.fixed.kpn.net. [81.204.249.205]) by smtp.gmail.com with ESMTPSA id i20-20020a170906a29400b00977fb2fb44asm52422ejz.28.2023.06.08.09.30.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 08 Jun 2023 09:30:28 -0700 (PDT) Message-ID: <4d9473ce-c167-47d7-e37a-7b39915a724c@gmail.com> Date: Thu, 8 Jun 2023 18:30:27 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 From: Johan Jonker Subject: [PATCH v1 2/5] mtd: nand: raw: rockchip-nand-controller: add skipbbt option To: miquel.raynal@bootlin.com Cc: richard@nod.at, vigneshr@ti.com, heiko@sntech.de, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, yifeng.zhao@rock-chips.com References: <19bf714a-43f9-c30a-8197-91aaaf4a6e5d@gmail.com> Content-Language: en-US In-Reply-To: <19bf714a-43f9-c30a-8197-91aaaf4a6e5d@gmail.com> Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" On Rockchip SoCs the first boot stages are written on NAND with help of manufacturer software that uses a different format then the MTD framework. Skip the automatic BBT scan with the NAND_SKIP_BBTSCAN option so we can run it manually. The NAND_NO_BBM_QUIRK option allows us to erase bad blocks with the nand_erase_nand() function and the flash_erase command. Signed-off-by: Johan Jonker --- drivers/mtd/nand/raw/rockchip-nand-controller.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/mtd/nand/raw/rockchip-nand-controller.c b/drivers/mtd/= nand/raw/rockchip-nand-controller.c index cafccc324..f56430f6c 100644 --- a/drivers/mtd/nand/raw/rockchip-nand-controller.c +++ b/drivers/mtd/nand/raw/rockchip-nand-controller.c @@ -188,6 +188,10 @@ struct rk_nfc { unsigned long assigned_cs; }; +static int skipbbt; +module_param(skipbbt, int, 0644); +MODULE_PARM_DESC(skipbbt, "Skip BBT scan if the NAND chip contains data no= t in MTD format."); + static inline struct rk_nfc_nand_chip *rk_nfc_to_rknand(struct nand_chip *= chip) { return container_of(chip, struct rk_nfc_nand_chip, chip); @@ -1156,6 +1160,10 @@ static int rk_nfc_nand_chip_init(struct device *dev,= struct rk_nfc *nfc, nand_set_controller_data(chip, nfc); + /* Skip the automatic BBT scan so we can run it manually. */ + if (skipbbt) + chip->options |=3D NAND_SKIP_BBTSCAN | NAND_NO_BBM_QUIRK; + chip->options |=3D NAND_USES_DMA | NAND_NO_SUBPAGE_WRITE; chip->bbt_options =3D NAND_BBT_USE_FLASH | NAND_BBT_NO_OOB; -- 2.30.2 From nobody Mon Dec 15 11:21:45 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BE644C7EE25 for ; Thu, 8 Jun 2023 16:31:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235304AbjFHQax (ORCPT ); Thu, 8 Jun 2023 12:30:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39964 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235520AbjFHQao (ORCPT ); Thu, 8 Jun 2023 12:30:44 -0400 Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com [IPv6:2a00:1450:4864:20::529]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 87EAC1FDC for ; Thu, 8 Jun 2023 09:30:43 -0700 (PDT) Received: by mail-ed1-x529.google.com with SMTP id 4fb4d7f45d1cf-51493ec65d8so1445987a12.2 for ; Thu, 08 Jun 2023 09:30:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686241842; x=1688833842; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:subject:from:user-agent:mime-version:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=8JK6nUED3jU/yRq5Kxia5FQ+fi4P7t0pEwpfr3iX2Go=; b=SSUKz1jK9Qed9t+uRHaFgw0LA0tr/oknZHzTeub9Vqzp/NzBqntpHfr6v3zXDpEKi1 LPJMzzZxsfB/77Xdxp4oUWCRR7sl7ibeHk2L+VJ6IB+SMfmIGOtaJRulnEL64DPClwzz ekLt0OMAizMxolBclwsuX5Tqz+1rs6ADmZaYo9fl0j+kWDuZV18toFs7/39EiAQg1GTl qK1ffa4v+rmFOKWgCqYMv4ML3vb4sFmzq+g29+/0HX6q+sJv5pCqnBb1fVqvl6AlpQKD N5Kd9sksfVKH1soJJ3x3Sc5n9RGrTH4vNhUlut8W3+rt9aFPrT4PBvKtP2ImF6/CpikE +HxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686241842; x=1688833842; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:subject:from:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=8JK6nUED3jU/yRq5Kxia5FQ+fi4P7t0pEwpfr3iX2Go=; b=JNZmPdZrb4FgaYKSmJBMtqOd+SMb1G0zmFJjoTM3wBb1zMhlYXFi/Tankn8xrW1RHB Z8qI8YQh5ZoH9CQDKwInzQKvppvmRqPeZh0uIqFwhQzIpvwqNW99yRwX1LB7gxr1ibfF kzedOUuWURP/On0YJ+M+vk8IW0Z9aUCrPOjcAy9xuCDQmfgX0WnVQOQfDVqHsfpIziKz FuwqNq2xwf84ek9DtpMbmP6XQk+DTcSW2MTRiwP6HDRAfg/G8S4/Q863+zhvIZcd0lrO SI7tTT4XNaUvkdyi1TogKS2yCL0KjcqPjGx5pF6E1WH84iCVfXypGC6+d0qztHGIp37j lbIw== X-Gm-Message-State: AC+VfDzYaYlg/ZUQNRyvokf808yBiPYVm4wmKINRDLazpybRc3gvfI+J 671raOjSp61QYwu1gGf4EKo= X-Google-Smtp-Source: ACHHUZ6J3DH1PqULJJPmTRQ1btMyatdURfw3vUzdQur0Ka2JugVYB02NEIPk2c0MUUGZggvS5kS+vw== X-Received: by 2002:a17:907:da1:b0:958:cc8:bd55 with SMTP id go33-20020a1709070da100b009580cc8bd55mr345832ejc.0.1686241841862; Thu, 08 Jun 2023 09:30:41 -0700 (PDT) Received: from [192.168.2.2] (81-204-249-205.fixed.kpn.net. [81.204.249.205]) by smtp.gmail.com with ESMTPSA id o10-20020a1709061d4a00b0096a742beb68sm24919ejh.201.2023.06.08.09.30.40 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 08 Jun 2023 09:30:41 -0700 (PDT) Message-ID: Date: Thu, 8 Jun 2023 18:30:40 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 From: Johan Jonker Subject: [PATCH v1 3/5] mtd: nand: raw: rockchip-nand-controller: fix nand timing default To: miquel.raynal@bootlin.com Cc: richard@nod.at, vigneshr@ti.com, heiko@sntech.de, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, yifeng.zhao@rock-chips.com References: <19bf714a-43f9-c30a-8197-91aaaf4a6e5d@gmail.com> Content-Language: en-US In-Reply-To: <19bf714a-43f9-c30a-8197-91aaaf4a6e5d@gmail.com> Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Somehow not all NAND chips give a valid timing setting with the nand_get_sdr_timings() function. Don't consider it as an error, but fall back to the default value in order to continue to use the driver. Signed-off-by: Johan Jonker --- drivers/mtd/nand/raw/rockchip-nand-controller.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/nand/raw/rockchip-nand-controller.c b/drivers/mtd/= nand/raw/rockchip-nand-controller.c index f56430f6c..e39431cfa 100644 --- a/drivers/mtd/nand/raw/rockchip-nand-controller.c +++ b/drivers/mtd/nand/raw/rockchip-nand-controller.c @@ -429,8 +429,10 @@ static int rk_nfc_setup_interface(struct nand_chip *ch= ip, int target, return 0; timings =3D nand_get_sdr_timings(conf); - if (IS_ERR(timings)) - return -EOPNOTSUPP; + if (IS_ERR(timings)) { + rknand->timing =3D 0x1081; + return 0; + } if (IS_ERR(nfc->nfc_clk)) rate =3D clk_get_rate(nfc->ahb_clk); -- 2.30.2 From nobody Mon Dec 15 11:21:45 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 37999C7EE2E for ; Thu, 8 Jun 2023 16:31:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235305AbjFHQbX (ORCPT ); Thu, 8 Jun 2023 12:31:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40106 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235457AbjFHQa7 (ORCPT ); Thu, 8 Jun 2023 12:30:59 -0400 Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com [IPv6:2a00:1450:4864:20::52e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C5FF02715 for ; Thu, 8 Jun 2023 09:30:55 -0700 (PDT) Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-51480d3e161so1250473a12.3 for ; Thu, 08 Jun 2023 09:30:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686241854; x=1688833854; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:subject:from:user-agent:mime-version:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=/+lWdxdyjn98DSIsUOubwz/2jxFFE94HkilpG/MpBg8=; b=lnFfQTWL93+gmaq67BRhQvuLlxlzloh39fybowrXPtD+Ttb2I6xa8z0AYOQ6AZQz7P 3PdYvcE/9ePKM4Qbs1nLAfWrz6xuqYGMI5VjVysieAVPYWU0iu+7pki8NRQb/EzUOGQ9 CpKARlQMgFXYbManoFWczAg4I8OYbCj3FEJyP9qCczB8rr8W6ZiJZM8z0LFsRjceTfOi DVI0l830g+qr9wmvqrtLx97Tw7lTOb6s/VAtHEKwewQBudGog5WE9V2hCPZ5qssX5UxF jittVF2oLYZ5OYvVJB1ygq/IKHFIizTZKpKxEu0kEDJ4JKGm+qK9JolleF3AygvlwaWe Q6Iw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686241854; x=1688833854; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:subject:from:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=/+lWdxdyjn98DSIsUOubwz/2jxFFE94HkilpG/MpBg8=; b=fXh4TCaQWKg5nQdPeadnr9Q14ndxdAafTO75SFTbwFsDGk9pmgaBuOKS5GPiEXfhe9 BSr+A8JaPkxFMKYK3/vWEJ8UcwLNo4SGoMYYdrd6dHqPqWcWmPIRDv+U00wG/b5qZ6t1 awxj4vyYZNUY+NEZkmWa2QN1UkQ2R4l62gWLuWoCu+H0buRftwclNB5Cyyyhi2GbLkm0 BR2QKA0dL4mWES1DXoqar9sAbSyqIZwSZZOcP4BM+rurHb22uqOuCHr1HX5DbskA9TRJ kWzOnGZDWPx3LadQwS9FzYHITPVR0k+gJwaQFU3gI+6Pilt3vNQRDNLwLEVgPB5vbqz3 MzWQ== X-Gm-Message-State: AC+VfDw1alDKv24viQ9SvIbNaZrnCjyUv7KV19U0Lzajd5WGQRPJdu01 o7qnomHFfz1Vyz4JYI+6Py4= X-Google-Smtp-Source: ACHHUZ4dAiHZdXniLxJTkgUTGxFZTA34BkWqXauEnC4CDgR/tTjfboJFNTivZhmLJ2Adyf7+kXoPbA== X-Received: by 2002:a17:906:d550:b0:974:20bd:6e15 with SMTP id cr16-20020a170906d55000b0097420bd6e15mr413482ejc.4.1686241854107; Thu, 08 Jun 2023 09:30:54 -0700 (PDT) Received: from [192.168.2.2] (81-204-249-205.fixed.kpn.net. [81.204.249.205]) by smtp.gmail.com with ESMTPSA id l6-20020a1709065a8600b0097866bc5119sm24920ejq.200.2023.06.08.09.30.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 08 Jun 2023 09:30:53 -0700 (PDT) Message-ID: <9f606cfd-6823-3232-4f96-d0bd70b17211@gmail.com> Date: Thu, 8 Jun 2023 18:30:52 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 From: Johan Jonker Subject: [PATCH v1 4/5] mtd: nand: raw: rockchip-nand-controller: fix oobfree offset and description To: miquel.raynal@bootlin.com Cc: richard@nod.at, vigneshr@ti.com, heiko@sntech.de, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, yifeng.zhao@rock-chips.com References: <19bf714a-43f9-c30a-8197-91aaaf4a6e5d@gmail.com> Content-Language: en-US In-Reply-To: <19bf714a-43f9-c30a-8197-91aaaf4a6e5d@gmail.com> Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The MTD framework reserves 1 or 2 bytes for the bad block marker depending on the bus size. The rockchip-nand-controller driver currently only supports a 8 bit bus, but reserves standard 2 bytes for the BBM. The first free OOB byte is therefore OOB2 at offset 2. Page address(PA) bytes are moved to the last 4 positions before ECC. Update the description for Linux. Signed-off-by: Johan Jonker --- drivers/mtd/nand/raw/rockchip-nand-controller.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/drivers/mtd/nand/raw/rockchip-nand-controller.c b/drivers/mtd/= nand/raw/rockchip-nand-controller.c index e39431cfa..cf0fe502f 100644 --- a/drivers/mtd/nand/raw/rockchip-nand-controller.c +++ b/drivers/mtd/nand/raw/rockchip-nand-controller.c @@ -568,9 +568,10 @@ static int rk_nfc_write_page_raw(struct nand_chip *chi= p, const u8 *buf, * BBM OOB1 OOB2 OOB3 |......| PA0 PA1 PA2 PA3 * * The rk_nfc_ooblayout_free() function already has reserved - * these 4 bytes with: + * these 4 bytes together with 2 bytes for BBM + * by reducing it's length: * - * oob_region->offset =3D NFC_SYS_DATA_SIZE + 2; + * oob_region->length =3D rknand->metadata_size - NFC_SYS_DATA_SIZE - 2; */ if (!i) memcpy(rk_nfc_oob_ptr(chip, i), @@ -947,12 +948,8 @@ static int rk_nfc_ooblayout_free(struct mtd_info *mtd,= int section, if (section) return -ERANGE; - /* - * The beginning of the OOB area stores the reserved data for the NFC, - * the size of the reserved data is NFC_SYS_DATA_SIZE bytes. - */ oob_region->length =3D rknand->metadata_size - NFC_SYS_DATA_SIZE - 2; - oob_region->offset =3D NFC_SYS_DATA_SIZE + 2; + oob_region->offset =3D 2; return 0; } -- 2.30.2 From nobody Mon Dec 15 11:21:45 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 470E5C7EE29 for ; Thu, 8 Jun 2023 16:31:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235419AbjFHQb1 (ORCPT ); Thu, 8 Jun 2023 12:31:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40168 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235572AbjFHQbI (ORCPT ); Thu, 8 Jun 2023 12:31:08 -0400 Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com [IPv6:2a00:1450:4864:20::536]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0FBE02119 for ; Thu, 8 Jun 2023 09:31:07 -0700 (PDT) Received: by mail-ed1-x536.google.com with SMTP id 4fb4d7f45d1cf-5149429c944so1472386a12.0 for ; Thu, 08 Jun 2023 09:31:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686241865; x=1688833865; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:subject:from:user-agent:mime-version:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=FuC7NSHnCjOPABSYc7BMbW74QWv84w5gPSWpqKs1P3g=; b=aNNyAbTqj3IEtixMqMg+vLI37ql4/0Acm5DTZwIVLAsTl75k6dQ1SmDigYhQyWMe+4 kv8STcPKEhQ/eKeljkyP5gMJqrpUNcA1ZV22qv/pKVdWNepsQP0b4YIgOCJ9/nFEI3v3 yJp2X3xDiG/Qfh/9y30lpl8xi0SV8LzrKgtKS8FZbDPZkDRQ7kfpqqm1TtgYXHIyPOij 45TSLPZ2nYlpojs18oErPwQg/iP8zPc+jII1NcC1iZO4zVuPpFkRc+zitkkk8VBg7uvQ 7p50g0b7aH0eyKMck+wRxrTxMci9kY47b1U73PqqP6BxdHnib0UIX/J1YcboiFYYj6Pg Apsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686241865; x=1688833865; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:subject:from:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=FuC7NSHnCjOPABSYc7BMbW74QWv84w5gPSWpqKs1P3g=; b=dnqSLYGv2Cp9C7wiI0KF7iyDaDVJqmVd1KTYbu9swTJicctTwxon3bzqtNB+NjrtL2 klliN+GgD1QIVlSs9y+7ZfP5b8QKm4uKSfyG3KROM/mzTEWYiXfjfHnCjxIQ/dDLK01T IKYtpXsj0AFjdQ/XVww5EJX8KUjuSwF+gbzXcCj/zZYxmj4Sv6iyyNxEu41JUMpwr/qL hO2aAj2Twmh7DYXGTNekdcvn9i3JD2i6nyCsTtC89yCdsCrUoywoWGzSU7ijm+IQZow+ 99D5HX1aEhlZicwRjVjLvM2Fgxyy579nK0ToRJHw1K0/07myggu71cPdk1h+JYU6WsZl yuYg== X-Gm-Message-State: AC+VfDySl37xKi8vsW1Y2ySk+w8npqd8ULNp6QRZoTEC3Pato3WTAzCO vLcNN9EidWwz9vNbxI+INpQ= X-Google-Smtp-Source: ACHHUZ7DyU8f3R8jgsuvsuJAD1m2ESx11xvhon/3qlB8Ls1/utZvujvvZ18ia9yuMt56eXMMwEU18g== X-Received: by 2002:a17:907:9445:b0:974:5c2f:65cc with SMTP id dl5-20020a170907944500b009745c2f65ccmr209318ejc.67.1686241865494; Thu, 08 Jun 2023 09:31:05 -0700 (PDT) Received: from [192.168.2.2] (81-204-249-205.fixed.kpn.net. [81.204.249.205]) by smtp.gmail.com with ESMTPSA id k19-20020a170906129300b0097381fe7aaasm29029ejb.180.2023.06.08.09.31.04 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 08 Jun 2023 09:31:05 -0700 (PDT) Message-ID: Date: Thu, 8 Jun 2023 18:31:04 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 From: Johan Jonker Subject: [PATCH v1 5/5] mtd: nand: add support for the Sandisk SDTNQGAMA chip To: miquel.raynal@bootlin.com Cc: richard@nod.at, vigneshr@ti.com, heiko@sntech.de, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, yifeng.zhao@rock-chips.com References: <19bf714a-43f9-c30a-8197-91aaaf4a6e5d@gmail.com> Content-Language: en-US In-Reply-To: <19bf714a-43f9-c30a-8197-91aaaf4a6e5d@gmail.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Sandisk SDTNQGAMA is a 8GB size, 3.3V 8 bit chip with 16KB page size, 1KB write size and 40 bit ecc support Signed-off-by: Pawe=C5=82 Jarosz Signed-off-by: Johan Jonker --- drivers/mtd/nand/raw/nand_ids.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/mtd/nand/raw/nand_ids.c b/drivers/mtd/nand/raw/nand_id= s.c index dacc5529b..53c4118de 100644 --- a/drivers/mtd/nand/raw/nand_ids.c +++ b/drivers/mtd/nand/raw/nand_ids.c @@ -44,6 +44,9 @@ struct nand_flash_dev nand_flash_ids[] =3D { {"TC58NVG6D2 64G 3.3V 8-bit", { .id =3D {0x98, 0xde, 0x94, 0x82, 0x76, 0x56, 0x04, 0x20} }, SZ_8K, SZ_8K, SZ_2M, 0, 8, 640, NAND_ECC_INFO(40, SZ_1K) }, + {"SDTNQGAMA 64G 3.3V 8-bit", + { .id =3D {0x45, 0xde, 0x94, 0x93, 0x76, 0x57} }, + SZ_16K, SZ_8K, SZ_4M, 0, 6, 1280, NAND_ECC_INFO(40, SZ_1K) }, {"SDTNRGAMA 64G 3.3V 8-bit", { .id =3D {0x45, 0xde, 0x94, 0x93, 0x76, 0x50} }, SZ_16K, SZ_8K, SZ_4M, 0, 6, 1280, NAND_ECC_INFO(40, SZ_1K) }, -- 2.30.2