[PATCH] imx: distinguish POR from POR+WDOG reset cause for first wd
Peng Fan
peng.fan at nxp.com
Mon Jan 27 13:49:45 CET 2020
> Subject: RE: [PATCH] imx: distinguish POR from POR+WDOG reset cause for
> first wd
>
> Hi Fabio,
>
> >
> > Hi Flavio,
> >
> > On Wed, Jan 22, 2020 at 11:18 AM Flavio Suligoi <f.suligoi at asem.it> wrote:
> > >
> > > In some application the possibility to check if the reset is caused
> > > by a watchdog is essential, even if it occurs simultaneously with
> > > POR.
> > >
> > > Signed-off-by: Flavio Suligoi <f.suligoi at asem.it>
> > > ---
> > > arch/arm/mach-imx/cpu.c | 7 ++++++-
> > > 1 file changed, 6 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/arch/arm/mach-imx/cpu.c b/arch/arm/mach-imx/cpu.c index
> > > bfa85c6..ce0c663 100644
> > > --- a/arch/arm/mach-imx/cpu.c
> > > +++ b/arch/arm/mach-imx/cpu.c
> > > @@ -47,7 +47,6 @@ static char *get_reset_cause(void) {
> > > switch (get_imx_reset_cause()) {
> > > case 0x00001:
> > > - case 0x00011:
> > > return "POR";
> > > case 0x00004:
> > > return "CSU";
> > > @@ -59,6 +58,12 @@ static char *get_reset_cause(void) #else
> > > return "WDOG";
> > > #endif
> > > + case 0x00011:
> > > +#ifdef CONFIG_MX7
> > > + return "POR + WDOG1"; #else
> > > + return "POR + WDOG"; #endif
> > > case 0x00020:
> > > return "JTAG HIGH-Z";
> > > case 0x00040:
> >
> > If I understand this correctly your board has a WDOG_B pin connected
> > to the PMIC and when WDOG_B is asserted the PMIC is power cycled and
> > the system resets via POR.
> >
> > Is this correct? If not, please describe exactly your setup and what
> > you are trying to achieve.
> >
> > It seems that the current behavior is correct for me.
> >
> > Thanks
>
> I'm currently use the imx8mm_evk board, with the PMIC Rohom
> BD71847AMWV.
> After a:
>
> - power-on
> - push-button reset
> - a watchdog using the WDOG_B
>
> the i.MX8MMini register SRC_SRSR (address 0x3039005C) is:
> SRC_SRSR = 0x00000001 --> POR
>
> but after a soft reset, from u-boot, using the WDOG1_WCR (address
> 0x30280000):
>
> mw.w 30280000 053C
This will trigger a wdog timeout wdog_b assert to pmic, so it should be POR.
>
> we have:
> SRC_SRSR = 0x00000011 --> POR + WDOG
If bit4 is set, that means you are not really doing POR. Have you tried clear
Bit 3 and 5 when set WCR?
If you wanna soft reset, using wdog_b to trigger pmic is not correct. You
need use SRS.
Regards,
Peng.
>
> and in this case is important for me to distinguish the two different situation.
>
> Thanks,
>
> Flavio
More information about the U-Boot
mailing list