On 05.06.20 14:13, Stefan Roese wrote:
On 05.06.20 14:11, Rasmus Villemoes wrote:
On 05/06/2020 13.48, Stefan Roese wrote:
On 05.06.20 13:16, Rasmus Villemoes wrote:
This is what I had in mind. I also considered making it a config knob
(possibly just auto-selected based on $ARCH) whether to use
get_timer() or get_ticks(), but that becomes quite ugly.

I hesitate a bit, moving with this generic code from get_timer()
to get_ticks() for all boards. Did you test this patch on other
platforms, like some ARM boards?

Please note that I don't reject it - just asking.

Yeah, I'm not really too happy about it myself, exactly because it
affects all arches/platforms. And no, I don't have other hardware handy
unfortunately. So it's very much an RFC where I hope someone with
knowledge of the various arches can say whether one can expect
get_ticks() to be at least as widely available as get_timer().

I'll try to test it on a non-powerpc platform soon'ish.

I've tested it on an MIPS based platform (gardena-smart-gateway-mt7688)
and it works there without any issues AFAICT.

Two more remarks:

Could you please run a build test with this patch applied for all
boards (Travis, Azure...)?

And do you see an issue, that the timer-wrap fixed by Chris with this
patch [1] will not re-occur with your "ticks" approach?

Thanks,
Stefan

[1]
Author: Chris Packham <judge.pack...@gmail.com>  2020-02-24 01:20:33
Committer: Stefan Roese <s...@denx.de>  2020-03-16 11:25:12
Parent: db41d65a97f335167e1fbc0400a83333b5157703 (common: Move hang() to the same header as panic()) Child: b4d9452c442769e6dc25649ac02db2d5ed5ea0c8 (watchdog: move initr_watchdog() to wdt-uclass.c)
Branches: master, watchdog-ratelimit-2020-06-05-rfc and many more (84)
Follows: v2020.04-rc3
Precedes: v2020.04-rc4

    watchdog: Handle timer wrap around

    On some platforms/architectures the value from get_timer() can wrap.
This is particularly problematic when long-running code needs to measure
    a time difference as is the case with watchdog_reset() which tries to
    avoid tickling the watchdog too frequently.

    Use time_after() from time.h instead of a plain > comparison to avoid
    any issues with the time wrapping on a system that has been sitting in
    u-boot for a long time.

    Signed-off-by: Chris Packham <judge.pack...@gmail.com>
    Reviewed-by: Stefan Roese <s...@denx.de>

Reply via email to