From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Martin Kaiser <martin@kaiser.cx>
Cc: Boris Brezillon <boris.brezillon@bootlin.com>,
David Woodhouse <dwmw2@infradead.org>,
Sascha Hauer <s.hauer@pengutronix.de>,
Fabio Estevam <fabio.estevam@nxp.com>,
linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org,
stable@vger.kernel.org
Subject: Re: [PATCH] mtd: rawnand: mxc: set spare area size register explicitly
Date: Thu, 7 Jun 2018 17:19:11 +0200 [thread overview]
Message-ID: <20180607171911.7a7ee649@xps13> (raw)
In-Reply-To: <1528025495-14443-1-git-send-email-martin@kaiser.cx>
Hi Martin,
On Sun, 3 Jun 2018 13:31:35 +0200, Martin Kaiser <martin@kaiser.cx>
wrote:
> The v21 version of the NAND flash controller contains a Spare Area Size
> Register (SPAS) at offset 0x10. Its setting defaults to the maximum
> spare area size of 218 bytes. The size that is set in this register is
> used by the controller when it calculates the ECC bytes internally in
> hardware.
>
> Usually, this register is updated from settings in the IIM fuses when
> the system is booting from nand flash. For other boot media, however,
s/nand/NAND
> the SPAS register remains at the default setting, which may not work for
> the particular flash chip on the board. The same goes for flash chips
> whose configuration cannot be set in the IIM fuses (e.g. chips with 2k
> sector size and 128 bytes spare area size can't be configured in the IIM
> fuses on imx25 systems).
>
> Set the SPAS register explicitly during the preset operation. Derive the
> register value from mtd->oobsize that was detected during probe by
> decoding the flash chip's ID bytes.
>
> While at it, rename the define for the spare area register's offset to
> NFC_V21_RSLTSPARE_AREA. The register at offset 0x10 on v1 controllers is
> different from the register on v21 controllers.
>
> Signed-off-by: Martin Kaiser <martin@kaiser.cx>
> Cc: stable@vger.kernel.org
> ---
> drivers/mtd/nand/raw/mxc_nand.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mtd/nand/raw/mxc_nand.c b/drivers/mtd/nand/raw/mxc_nand.c
> index 45786e7..c2f8572 100644
> --- a/drivers/mtd/nand/raw/mxc_nand.c
> +++ b/drivers/mtd/nand/raw/mxc_nand.c
> @@ -48,7 +48,7 @@
> #define NFC_V1_V2_CONFIG (host->regs + 0x0a)
> #define NFC_V1_V2_ECC_STATUS_RESULT (host->regs + 0x0c)
> #define NFC_V1_V2_RSLTMAIN_AREA (host->regs + 0x0e)
> -#define NFC_V1_V2_RSLTSPARE_AREA (host->regs + 0x10)
> +#define NFC_V21_RSLTSPARE_AREA (host->regs + 0x10)
> #define NFC_V1_V2_WRPROT (host->regs + 0x12)
> #define NFC_V1_UNLOCKSTART_BLKADDR (host->regs + 0x14)
> #define NFC_V1_UNLOCKEND_BLKADDR (host->regs + 0x16)
> @@ -1274,6 +1274,9 @@ static void preset_v2(struct mtd_info *mtd)
> writew(config1, NFC_V1_V2_CONFIG1);
> /* preset operation */
>
> + /* spare area size in 16bit words */
I thought I understood the problem with your commit message but
then I don't get this comment. What's the link between 16-bit buses? Is
this preset valid for both 8 and 16-bit bus width?
> + writew(mtd->oobsize >> 1, NFC_V21_RSLTSPARE_AREA);
> +
If this is for dividing per two oobsize value, I would really prefer a
'/ 2' and let the compiler optimize things. Unless the spec is explicit
about some shifting of course.
> /* Unlock the internal RAM Buffer */
> writew(0x2, NFC_V1_V2_CONFIG);
>
Thanks for fixing this.
Regards,
Miquèl
next prev parent reply other threads:[~2018-06-07 15:19 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-03 11:31 [PATCH] mtd: rawnand: mxc: set spare area size register explicitly Martin Kaiser
2018-06-04 6:53 ` Sascha Hauer
2018-06-07 15:19 ` Miquel Raynal [this message]
2018-06-10 13:14 ` Martin Kaiser
2018-06-10 13:31 ` [PATCH v2] " Martin Kaiser
2018-06-18 14:06 ` Miquel Raynal
2018-06-18 14:09 ` Boris Brezillon
2018-06-18 20:36 ` Martin Kaiser
2018-06-18 20:41 ` [PATCH v3] " Martin Kaiser
2018-06-19 5:52 ` Boris Brezillon
2018-06-19 9:07 ` Miquel Raynal
2018-06-20 9:41 ` Boris Brezillon
-- strict thread matches above, loose matches on Subject: below --
2018-07-01 9:56 FAILED: patch "[PATCH] mtd: rawnand: mxc: set spare area size register explicitly" failed to apply to 4.14-stable tree gregkh
2018-07-01 16:36 ` [PATCH] mtd: rawnand: mxc: set spare area size register explicitly Martin Kaiser
2018-07-10 14:17 ` Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180607171911.7a7ee649@xps13 \
--to=miquel.raynal@bootlin.com \
--cc=boris.brezillon@bootlin.com \
--cc=dwmw2@infradead.org \
--cc=fabio.estevam@nxp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=martin@kaiser.cx \
--cc=s.hauer@pengutronix.de \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.