mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Sascha Hauer <s.hauer@pengutronix.de>
To: Alexander Kurz <akurz@blala.de>
Cc: barebox@lists.infradead.org
Subject: Re: [PATCH] wdog: imx-wd: distinguish for WICR/WMCR support
Date: Tue, 5 Jul 2016 08:36:53 +0200	[thread overview]
Message-ID: <20160705063653.GM20657@pengutronix.de> (raw)
In-Reply-To: <alpine.DEB.2.00.1607042356330.21588@blala.de>

On Tue, Jul 05, 2016 at 12:40:29AM +0200, Alexander Kurz wrote:
> 
> 
> On Mon, 4 Jul 2016, Sascha Hauer wrote:
> 
> > On Sat, Jul 02, 2016 at 04:50:02PM +0200, Alexander Kurz wrote:
> > > The IMX watchdog driver currently distinguishes two variants: imx1-wdt
> > > using a 32-bit register interface and imx21-wdt with a 16-bit register
> > > interface.
> > > Further distinguishment is required: the i.MX21, i.MX27 and i.MX31 SOC
> > > do provide a three register interface (WCR, WSR, WRSR) while later SOC
> > > starting with i.MX25 provide two additional registers (WICR and WMCR).
> > > The five-register interface is also used on i.MX35, and Cortex-A based
> > > i.MX SOC.
> > > 
> > > With commit 4cc0a3d9c547 ("wdog: imx-wd: Disable watchdog powerdown counter")
> > > one of the extended registers (WMCR) got used first.
> > > 
> > > Make imx-wd distinguish between the three and five register Watchdog Timers
> > > and introduce the five register support as imx25-wdt.
> > > 
> > > Note on DTS: keep the i.MX related DTS in sync with linux and make the
> > > existing programming model fsl,imx21-wdt behave like fsl,imx25-wdt for
> > > the mean time until this is addressed upstream in linux.
> > > 
> > > fixes: 4cc0a3d9c547 ("wdog: imx-wd: Disable watchdog powerdown counter")
> > 
> > So beginning with 4cc0a3d9c547 i.MX21, i.MX27 and i.MX31 accidently use
> > the five-register interface. What are the practical consequences? Does
> > the driver still work properly on these SoCs?
> The access of this non-existing register triggers a crash of a barebox run 
> out of the factory shipped u-boot on an MX31 based Kindle-DX (u-boot gets 
> re-started, probably some abort handler) - I dont have any JTAG interface 
> running yet to see what's going on in detail.

Just tested on i.MX27, it doesn't crash there. I noticed some time ago
that i.MX27 and i.MX31 behave differently when accessing non existent
registers.

> 
> > 
> > I'm aksing because even with this patch...
> > 
> > >  		.compatible = "fsl,imx21-wdt",
> > > -		.data = &imx21_wd_ops,
> > > +		/* FIXME: backward compaibility for imported linux DTS
> > > +		   Most references to fsl,imx21-wdt from linux imported DTS
> > > +		   linux actually mean fsl,imx25-wdt. Make fsl,imx21-wdt
> > > +		   behave like fsl,imx25-wdt for the mean time until
> > > +		   this is fixed there */
> > > +		.data = &imx25_wd_ops,
> > > +	}, {
> > 
> > ...device tree based i.MX21/27/31 boards still use the five-register
> > interface. There are no i.MX21/31 based device tree boards, but there
> > are some i.MX27 boards with device tree support.
> Yes, this point is open.
> I did not want to break the sync between the linux und barebox IMX DTS 
> stock. My Idea was:
> 1) do this first fix in barebox which will not cover DTS (do 
>  workaround "wdt21 behaves like wdt25") 
> 2) fix it in linux, wait till next rc which contains the fix
> 3) linux DTS gets imported into barebox, and the workarkound wdt21 behaves   
>  like wdt25" can be removed

Sounds good. How about encapsulating the WMCR access in a

	if (cpu_is_mx25() || cpu_is_mx35() || cpu_is_mx51() ||
	    cpu_is_mx53() || cpu_is_mx6())

until we can properly distinguish between the different watchdog units?

Sascha

-- 
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

      reply	other threads:[~2016-07-05  6:37 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-02 14:50 Alexander Kurz
2016-07-04  9:37 ` Sascha Hauer
2016-07-04 22:40   ` Alexander Kurz
2016-07-05  6:36     ` 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=20160705063653.GM20657@pengutronix.de \
    --to=s.hauer@pengutronix.de \
    --cc=akurz@blala.de \
    --cc=barebox@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox