History log of /seL4-camkes-master/projects/util_libs/libplatsupport/src/mach/omap/ltimer.c
Revision Date Author Comments
# b31d9da3 07-May-2020 Michael Yoo <michael.yoo@data61.csiro.au>

libplatsupport: omap3 ltimer refactor

This refactors the omap3 ltimer to use the new
driver framework APIs.
- IRQ Chip parser "copied" off avic.c
- Change array-based ABS and REL timer distinction
into two different variables
- gpt_create() sets up mappings, while
abs_gpt_init()/rel_gpt_init() set up the registers
- Change some signatures to void
- IRQ handler moved to timer driver
- IRQ handler logic is shared between 'abs' and
'rel' timers, behaviour differs on how they were
initialised


# ef47d09d 08-Aug-2019 Damon Lee <Damon.Lee@data61.csiro.au>

libplatsupport: Refactor the internal handle_irq

Now that the handle_irq functions are no longer externally visible, this
commits refactors the handle_irq functions so that they can be accessed
internally. Also add logic to invoke the user supplied callbacks after
handling the timer IRQ.


# 80c6eb35 08-Aug-2019 Damon Lee <Damon.Lee@data61.csiro.au>

libplatsupport: Remove handle_irq from ltimers

The 'handle_irq' function is no longer necessary and shouldn't be called
externally as the IRQs will be managed by the IRQ handling functions of
the IRQ interface.


# 6e800582 08-Aug-2019 Damon Lee <Damon.Lee@data61.csiro.au>

libplatsupport: Allow user callbacks for ltimer

With the IRQ changes to the ltimer, IRQs are now managed internally.
This poses a problem with the management of the time manager and other
services which rely on having known that an interrupt arrived for the
timers. This also isn't a good idea as it presents a leaky abstraction
in that the services infers events based on interrupts received.

This commit adds the ability to allow users to supply a callback
that'll be called when certain events occur for the timer, e.g. timeouts
and etc.


# 0431e3a2 01-Aug-2019 Damon Lee <Damon.Lee@data61.csiro.au>

libplatsupport: Add IRQ register logic to ltimers

This commit adds IRQ registration logic to the ltimer driver level.
Instead of treating interrupt allocation being a OS/environment specific
thing, this commit now uses the OS/environment agnostic IRQ interface to
register these interrupts. Also fix bugs/clean-up the logic of the init
and destroy functions.


# 7ee40668 05-Dec-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Fixes for omap ltimer

- always use the rel gpt for timeouts as the logic is too complex and
error prone for abs_gpt. Stick to using abs_gpt to measure the time.
- handle relative and absolute timeouts > the max for the gpt.


# 12ef6aa8 25-Jul-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

trivial: fix licenses


# 2ea5b6fe 19-Jul-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Implement ltimer for omap

- remove pstimer support
- combine absolute_gpt and relative_gpt, gpt.h into one file