On Wed, Jul 08, 2026 at 10:38:10AM +0200, Bastien Curutchet wrote:
> readl_relaxed_poll_timeout() relies on timers. On the beaglebone black,
> the timer used by readl_relaxed_poll_timeout() depends on this clock
> driver. So we have a sort of circular dependency [enable_clock ->
> timer_init -> enable_clock -> timer_init]. It leads to a
> division-per-zero during the second timer_init() and the beaglebone
> fails to boot with following message:
> | CPU : AM335X-GP rev 2.1
> | Model: TI AM335x BeagleBone Black
> | DRAM: 512 MiB
> | ### ERROR ### Please RESET the board ###
>
> Replace readl_relaxed_poll_timeout() with a simple loop that uses CPU
> ticks to countdown the timeout. This loop and the value of LDELAY are
> inspired from what's done in arch/arm/mach-omap2/am33xx/clock.c
> Also, arch/arm/mach-omap2/am33xx/clock.c doesn't return an error on
> timeout, it only logs it, so let's stick with it.
>
> Fixes: de2e3f00f2fa ("clk: ti: Remove AM33xx dependency")
> Signed-off-by: Bastien Curutchet <[email protected]>Reported-by: Tom Rini <[email protected]> Tested-by: Tom Rini <[email protected]> Thanks! -- Tom
signature.asc
Description: PGP signature

