
Hi Tom,
On 16.09.22 23:48, Tom Rini wrote:
<snip>
Thanks for testing. I do have one last experiment for tonight. Please give the attached v2 a try.
Thanks, Stefan
From 2f61bc2cf011190eedbc0be34b4d61f342e7e5a5 Mon Sep 17 00:00:00 2001 From: Stefan Roese sr@denx.de Date: Fri, 16 Sep 2022 21:08:51 +0200 Subject: [PATCH v2] cyclic: Only call cyclic_run() from schedule() when it's ready
schedule() might get called very early in the boot process (SPL etc), when the cyclic IF is not initialized. Let's make sure, that we only call into cyclic_run() when it's ready.
Signed-off-by: Stefan Roese sr@denx.de
common/cyclic.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/common/cyclic.c b/common/cyclic.c index 594f9cd92592..b3c180bd1a62 100644 --- a/common/cyclic.c +++ b/common/cyclic.c @@ -104,7 +104,12 @@ void schedule(void) if (IS_ENABLED(CONFIG_HW_WATCHDOG)) hw_watchdog_reset();
- cyclic_run();
/*
* schedule() might get called very early before the cyclic IF is
* ready. Make sure to only call cyclic_run() when it's initalized.
*/
if (gd && gd->cyclic && gd->cyclic->cyclic_ready)
cyclic_run();
}
int cyclic_uninit(void)
This worked and both boards that failed before now pass.
Perfect. Thanks again for testing.
I'll re-spin v2 of the patchset with this patch squashed in, so that git bisect'ing will work.
Thanks, Stefan