[U-Boot] am33xx board with no external RTC crystal issue
Alex Kiernan
alex.kiernan at gmail.com
Tue Oct 30 06:12:04 UTC 2018
On Mon, Oct 29, 2018 at 11:36 PM Belisko Marek <marek.belisko at gmail.com> wrote:
>
> Hi,
>
> I'm working on custome am33xx based HW which have no external 32KHz
> crystal. Anyway I want to use bootcount feature. I was trying to use
> internal PRCM CLK_32KHZ clock as source for RTCSS but still when want
> to read RTC registers I get data abort.
>
> I adapted this method :
>
> static void rtc32k_enable(void)
> {
> struct davinci_rtc *rtc = (struct davinci_rtc *)RTC_BASE;
>
> /*
> * Unlock the RTC's registers. For more details please see the
> * RTC_SS section of the TRM. In order to unlock we need to
> @@ -287,9 +288,8 @@ static void rtc32k_enable(void)
> writel(RTC_KICK1R_WE, &rtc->kick1r);
>
> /* Enable the RTC 32K OSC by setting bits 3 and 6. */
> - writel((1 << 3) | (1 << 6), &rtc->osc);
> + writel((1 << 6), &rtc->osc);
> }
>
> to not use external crystal 32KHz clock but internal. Anyway when
> doing that board just hangs and thats it. Any ideas or suggestions?
I've a board exactly like that... check you're driving RTC_PORz
correctly, if you hold it in reset, that's the behaviour I see.
> It
> is even possible to have something like that? I just seen that
> include/configs/siemens-am33x-common.h (using also am335x cpu without
> external 32KHz crystal) storing bootcount to env. Thanks a lot for any
> pointers.
>
FWIW I gave up trying to use the internal clock as I couldn't get it
to tick reliably (my suspicion was my hand modified board wasn't
actually driving the reset correctly) and instead switched to keeping
the bootcounter in SRAM.
--
Alex Kiernan
More information about the U-Boot
mailing list