[U-Boot] [U-Boot,V2] imx: mx7: psci: add system reset support

Peng Fan peng.fan at nxp.com
Tue May 8 05:29:46 UTC 2018



> -----Original Message-----
> From: Trent Piepho [mailto:tpiepho at impinj.com]
> Sent: 2018年5月8日 6:07
> To: christian.gmeiner at gmail.com; Peng Fan <peng.fan at nxp.com>; Anson
> Huang <anson.huang at nxp.com>; u-boot at lists.denx.de;
> albert.u.boot at aribaud.net; sbabic at denx.de
> Cc: Fabio Estevam <fabio.estevam at nxp.com>
> Subject: Re: [U-Boot,V2] imx: mx7: psci: add system reset support
> 
> On Thu, 2018-01-04 at 17:03 +0800, Anson Huang wrote:
> > Add i.MX7 PSCI system reset support, linux kernel now can use "reboot"
> > command to reset system.
> 
> 
> > +__secure void imx_system_reset(void)
> > +{
> > +	writew(1 << 2, WDOG1_BASE_ADDR);
> > +}
> 
> This does not work properly on our board.

You could try write 0x14 to WDOG1_BASE_ADDR to see whether it works.
Here using (1 << 2) triggers both SRS and WDOG_B which seems wrong.

-Peng.

> 
> Due to an erratum in iMX7d it is necessary to wire the external WDOG_B
> signal to the pmic to cycle power in order to reset the board.  The
> Linux IMX watchdog driver works when it does a reboot via the watchdog,
> but this code does not.
> 
> When the Linux drivers is configured for an external wdog signal, using
> a DT property, it sets WCR_SRS to prevent the internal system reset in
> response to watchdog triggering.  When that is not done, as in this
> patch, the internal reset appears to reset the wdog module or iomux or
> something, which causes the imx7d to stop asserting the external wdog
> signal.
> 
> In my tests, this takes only about 2.4 µs.  Such a short wdog_b pulse
> does not appear to be sufficient to trigger the pmic to cycle power.
> 
> When SRS is set, then the WDOG_B signal will remain asserted until the
> POR_B input signal to the imx7d is asserted.  I.e., until pmic responds
> to the watchdog signal.


More information about the U-Boot mailing list