Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Feb 2017 10:31:11 +0000
From:      Yoshiro MIHIRA <sanpei.ml@gmail.com>
To:        Ian Lepore <ian@freebsd.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r312679 - head/sys/arm/freescale/imx
Message-ID:  <CALwmBx2=Tcwh_b6UHcLgd04Bt%2BODuokP6JVdqcuYHnLZApLfVw@mail.gmail.com>
In-Reply-To: <201701240209.v0O29UDD047838@repo.freebsd.org>
References:  <201701240209.v0O29UDD047838@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi.
Ian

Thank you for your strong effort to support imx6 board.

I have SolidRun HummingBoard-i2(imx6dl-hummingboard).

I have reboot issue(never reset after reboot) and if I use Linux, I
reproduce this issue So I reported this issue to SolidRun Forum.
http://forum.solid-run.com/linux-on-cubox-i-and-hummingboard-f8/need-to-pus=
h-reset-button-to-reboot-linux-system-t3122.html
But I could not get any information.

I tested latest kernel(r313280) unfortunately it was not solved.

Do you know other information about reset issue, please let me know.

Currently I need to push reset button when I restart system...

Yours
Yoshiro MIHIRA

2017=E5=B9=B41=E6=9C=8824=E6=97=A5(=E7=81=AB) 11:09 Ian Lepore <ian@freebsd=
.org>:

> Author: ian
> Date: Tue Jan 24 02:09:30 2017
> New Revision: 312679
> URL: https://svnweb.freebsd.org/changeset/base/312679
>
> Log:
>   Handle imx6 erratum ERR004346... to reboot, clear the SRS bit twice
> within
>   the same cycle of the 32khz clock.
>
>   I've never actually noticed this error happening, but it's an easy fix.
>
> Modified:
>   head/sys/arm/freescale/imx/imx_machdep.c
>
> Modified: head/sys/arm/freescale/imx/imx_machdep.c
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/arm/freescale/imx/imx_machdep.c    Tue Jan 24 01:39:40 2017
>       (r312678)
> +++ head/sys/arm/freescale/imx/imx_machdep.c    Tue Jan 24 02:09:30 2017
>       (r312679)
> @@ -69,11 +69,18 @@ imx_wdog_cpu_reset(vm_offset_t wdcr_phys
>          * Trigger an immediate reset by clearing the SRS bit in the
> watchdog
>          * control register.  The reset happens on the next cycle of the
> wdog
>          * 32KHz clock, so hang out in a spin loop until the reset takes
> effect.
> +        *
> +        * Imx6 erratum ERR004346 says the SRS bit has to be cleared twic=
e
> +        * within the same cycle of the 32khz clock to reliably trigger t=
he
> +        * reset.  Writing it 3 times in a row ensures at least 2 of the
> writes
> +        * happen in the same 32k clock cycle.
>          */
>         if ((pcr =3D devmap_ptov(wdcr_physaddr, sizeof(*pcr))) =3D=3D NUL=
L) {
>                 printf("cpu_reset() can't find its control register...
> locking up now.");
>         } else {
>                 *pcr &=3D ~WDOG_CR_SRS;
> +               *pcr &=3D ~WDOG_CR_SRS;
> +               *pcr &=3D ~WDOG_CR_SRS;
>         }
>         for (;;)
>                 continue;
>
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CALwmBx2=Tcwh_b6UHcLgd04Bt%2BODuokP6JVdqcuYHnLZApLfVw>