From: Sascha Hauer <s.hauer@pengutronix.de>
To: Wolfram Sang <w.sang@pengutronix.de>
Cc: barebox@lists.infradead.org
Subject: Re: [PATCH V2] mtd: nand: mxs: reset BCH earlier, too, to avoid NAND startup problems
Date: Thu, 6 Dec 2012 08:43:15 +0100 [thread overview]
Message-ID: <20121206074315.GT10369@pengutronix.de> (raw)
In-Reply-To: <1354734167-13486-1-git-send-email-w.sang@pengutronix.de>
On Wed, Dec 05, 2012 at 08:02:47PM +0100, Wolfram Sang wrote:
> It could happen (1 out of 100 times) that NAND did not start up
> correctly after warm rebooting, so barebox could not find its
> environment or DMA timed out due to a stalled BCH. When resetting BCH
> together with GPMI, the issue could not be observed anymore. We probably
> need the consistent state already before sending commands to NAND.
>
> Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Applied, thanks
Sascha
> ---
> drivers/mtd/nand/nand_mxs.c | 13 ++++++++++---
> 1 file changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mtd/nand/nand_mxs.c b/drivers/mtd/nand/nand_mxs.c
> index 975a44f..c4509d3 100644
> --- a/drivers/mtd/nand/nand_mxs.c
> +++ b/drivers/mtd/nand/nand_mxs.c
> @@ -1128,6 +1128,7 @@ int mxs_nand_alloc_buffers(struct mxs_nand_info *nand_info)
> int mxs_nand_hw_init(struct mxs_nand_info *info)
> {
> void __iomem *gpmi_regs = (void *)MXS_GPMI_BASE;
> + void __iomem *bch_regs = (void __iomem *)MXS_BCH_BASE;
> int i = 0, ret;
> u32 val;
>
> @@ -1153,6 +1154,15 @@ int mxs_nand_hw_init(struct mxs_nand_info *info)
> if (ret)
> return ret;
>
> + val = readl(gpmi_regs + GPMI_VERSION);
> + info->version = val >> GPMI_VERSION_MINOR_OFFSET;
> +
> + /* Reset BCH. Don't use SFTRST on MX23 due to Errata #2847 */
> + ret = mxs_reset_block(bch_regs + BCH_CTRL,
> + info->version == GPMI_VERSION_TYPE_MX23);
> + if (ret)
> + return ret;
> +
> /*
> * Choose NAND mode, set IRQ polarity, disable write protection and
> * select BCH ECC.
> @@ -1163,9 +1173,6 @@ int mxs_nand_hw_init(struct mxs_nand_info *info)
> GPMI_CTRL1_BCH_MODE;
> writel(val, gpmi_regs + GPMI_CTRL1);
>
> - val = readl(gpmi_regs + GPMI_VERSION);
> - info->version = val >> GPMI_VERSION_MINOR_OFFSET;
> -
> return 0;
>
> err2:
> --
> 1.7.10.4
>
>
> _______________________________________________
> barebox mailing list
> barebox@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
prev parent reply other threads:[~2012-12-06 7:43 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-05 14:53 [PATCH] mtd: nand: mxs: reset BCH earlier to avoid NAND startup problems Wolfram Sang
2012-12-05 18:37 ` Sascha Hauer
2012-12-05 18:42 ` Wolfram Sang
2012-12-05 18:50 ` Sascha Hauer
2012-12-05 19:02 ` [PATCH V2] mtd: nand: mxs: reset BCH earlier, too, " Wolfram Sang
2012-12-06 7:43 ` Sascha Hauer [this message]
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=20121206074315.GT10369@pengutronix.de \
--to=s.hauer@pengutronix.de \
--cc=barebox@lists.infradead.org \
--cc=w.sang@pengutronix.de \
/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.