Page MenuHomeFreeBSD

Introduce separate watchdog driver for Armada to fix phony DELAY
ClosedPublic

Authored by mw_semihalf.com on May 14 2017, 12:38 AM.
Tags
Referenced Files
F83372372: D10710.id.diff
Thu, May 9, 3:32 PM
Unknown Object (File)
Sat, May 4, 12:55 AM
Unknown Object (File)
Wed, May 1, 7:22 AM
Unknown Object (File)
Sun, Apr 28, 2:08 PM
Unknown Object (File)
Fri, Apr 26, 5:00 AM
Unknown Object (File)
Sat, Apr 20, 10:09 PM
Unknown Object (File)
Dec 20 2023, 3:53 AM
Unknown Object (File)
Dec 3 2023, 10:38 PM

Details

Summary

DELAY is a problematic routine called all over the kernel.
Armada38x using CA-9 CPUs are using mpcore timer to count events
and measure time but DELAY in the mpcore timer code is a weak
function reference and therefore will be replaced by the platform
implementation if the one is introduced. Since Armada38x uses
on-chip watchdog to which the driver is merged with the on-chip timer
driver there will be a platform DELAY implementation.
The latter however will not use any HW timers as it will not attempt
to configure any. Phony busy loop will be used instead.

To fix that we introduce a separate watchdog driver for Armada platforms,
(currently only A38X) and stop using Marvell timer driver. That
switches DELAY to the desired implementation.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped