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>