From: Tony Lindgren <tony@atomide.com>
To: Jarkko Nikula <jarkko.nikula@bitmer.com>
Cc: linux-omap@vger.kernel.org,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Subject: Re: Regression with e428e250fde6 on BeagleBoard Rev C2
Date: Mon, 20 Sep 2021 16:34:59 +0300 [thread overview]
Message-ID: <YUiOA4QEbZXPmQ7F@atomide.com> (raw)
In-Reply-To: <3f6924a7-1934-b94e-2441-4781fe737f32@bitmer.com>
Hi,
* Jarkko Nikula <jarkko.nikula@bitmer.com> [210919 17:42]:
> Hi
>
> I found another timer related regression on BeagleBoard Rev C2 which was
> present before 6cfcd5563b4f ("clocksource/drivers/timer-ti-dm: Fix
> suspend and resume for am3 and am4") and which remains after fix
> 3ff340e24c9d ("bus: ti-sysc: Fix gpt12 system timer issue with reserved
> status") including today's head d4d016caa4b8 ("alpha: move __udiv_qrnnd
> library function to arch/alpha/lib/").
>
> Issue occurs when omap3_isp is not loaded and symptoms are the same than
> my previous finding [1]. I.e. timer interrupts appear missing and need
> to hit keys on serial console in order to let boot (when omap3_isp not
> built) or "sleep 1" in shell to continue.
>
> I bisected that regression to commit
> e428e250fde6 ("ARM: dts: Configure system timers for omap3")
OK thanks for bisecting it down :)
> According to commit and dmesg it seems to switch from 32k timer to 13
> MHz timer. Commit does not explain why it marks 32k timer as unusable on
> the BeagleBoard. Or was that a copy-paste error from another dts?
There is a 32k timer errata for beagleboard "Boards revision A and < B5"
at https://elinux.org/BeagleBoard_Community, but looks like that is
not what we were doing earlier looks like..
> Before
>
> [ 0.000000] OMAP clockevent source: timer12 at 32768 Hz
> [ 0.000000] OMAP clocksource: 32k_counter at 32768 Hz
> [ 0.000000] clocksource: 32k_counter: mask: 0xffffffff max_cycles:
> 0xffffffff, max_idle_ns: 58327039986419 ns
> [ 0.000030] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps
> every 65535999984741ns
Interesting, so the workaround we've had is still using the 32k clock
source instead of the mpu clock source, and also using the 32k_counter.
Let's switch back to that then, that sounds much nicer :)
> After e428e250fde6
>
> [ 0.000000] TI gptimer clockevent: 13000000 Hz at
> /ocp@68000000/target-module@49032000
> [ 0.000000] TI gptimer clocksource: always-on
> /ocp@68000000/target-module@48304000
> [ 0.000091] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps
> every 65535999984741ns
> [ 0.000183] clocksource: dmtimer: mask: 0xffffffff max_cycles:
> 0xffffffff, max_idle_ns: 58327039986419 ns
The patch below should take us back to the earlier configuration,
can you please give it a try?
> I fail to understand how omap3isp affects this since it actually disable
> clocks after probe. Does it keep some power domain active which then
> keeps the timer active etc?
Sounds like it's because omap3isp never allows the SoC to enter deeper
idle states. The mpu clock is stopped for idle states.
Regards,
Tony
8<---------------
diff --git a/arch/arm/boot/dts/omap3-beagle.dts b/arch/arm/boot/dts/omap3-beagle.dts
--- a/arch/arm/boot/dts/omap3-beagle.dts
+++ b/arch/arm/boot/dts/omap3-beagle.dts
@@ -304,11 +304,6 @@ &usbhsehci {
phys = <0 &hsusb2_phy>;
};
-/* Unusable as clocksource because of unreliable oscillator */
-&counter32k {
- status = "disabled";
-};
-
/* Unusable as clockevent because if unreliable oscillator, allow to idle */
&timer1_target {
/delete-property/ti,no-reset-on-init;
@@ -318,22 +313,13 @@ timer@0 {
};
};
-/* Preferred always-on timer for clocksource */
+/* Preferred always-on timer for clockevent */
&timer12_target {
ti,no-reset-on-init;
ti,no-idle;
timer@0 {
- /* Always clocked by secure_32k_fck */
- };
-};
-
-/* Preferred timer for clockevent */
-&timer2_target {
- ti,no-reset-on-init;
- ti,no-idle;
- timer@0 {
- assigned-clocks = <&gpt2_fck>;
- assigned-clock-parents = <&sys_ck>;
+ assigned-clocks = <&gpt12_fck>;
+ assigned-clock-parents = <&secure_32k_fck>;
};
};
diff --git a/arch/arm/boot/dts/omap3-devkit8000.dts b/arch/arm/boot/dts/omap3-devkit8000.dts
--- a/arch/arm/boot/dts/omap3-devkit8000.dts
+++ b/arch/arm/boot/dts/omap3-devkit8000.dts
@@ -15,11 +15,6 @@ aliases {
};
};
-/* Unusable as clocksource because of unreliable oscillator */
-&counter32k {
- status = "disabled";
-};
-
/* Unusable as clockevent because if unreliable oscillator, allow to idle */
&timer1_target {
/delete-property/ti,no-reset-on-init;
@@ -29,21 +24,12 @@ timer@0 {
};
};
-/* Preferred always-on timer for clocksource */
+/* Preferred always-on timer for clockevent */
&timer12_target {
ti,no-reset-on-init;
ti,no-idle;
timer@0 {
- /* Always clocked by secure_32k_fck */
- };
-};
-
-/* Preferred timer for clockevent */
-&timer2_target {
- ti,no-reset-on-init;
- ti,no-idle;
- timer@0 {
- assigned-clocks = <&gpt2_fck>;
- assigned-clock-parents = <&sys_ck>;
+ assigned-clocks = <&gpt12_fck>;
+ assigned-clock-parents = <&secure_32k_fck>;
};
};
--
2.33.0
next prev parent reply other threads:[~2021-09-20 13:35 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-19 17:41 Regression with e428e250fde6 on BeagleBoard Rev C2 Jarkko Nikula
2021-09-20 13:34 ` Tony Lindgren [this message]
2021-09-20 14:52 ` Andreas Kemnade
2021-09-21 7:00 ` Tony Lindgren
2021-09-21 16:25 ` Andreas Kemnade
2021-09-20 16:35 ` Jarkko Nikula
2021-09-21 7:00 ` Tony Lindgren
2021-09-21 17:49 ` Jarkko Nikula
2021-09-22 10:07 ` Tony Lindgren
2021-09-22 17:21 ` Jarkko Nikula
2021-09-23 5:41 ` Tony Lindgren
2021-09-23 18:03 ` Jarkko Nikula
2021-09-24 7:02 ` Tony Lindgren
2021-09-25 14:55 ` Jarkko Nikula
2021-09-30 7:04 ` Tony Lindgren
2021-10-20 17:52 ` Jarkko Nikula
2021-10-21 13:58 ` Tony Lindgren
2021-10-21 18:10 ` Jarkko Nikula
2021-10-24 6:41 ` Tony Lindgren
2021-09-20 18:19 ` H. Nikolaus Schaller
2021-09-21 7:02 ` Tony Lindgren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YUiOA4QEbZXPmQ7F@atomide.com \
--to=tony@atomide.com \
--cc=jarkko.nikula@bitmer.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-omap@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox