History log of /seL4-camkes-master/projects/util_libs/libplatsupport/src/mach/zynq/ltimer.c
Revision Date Author Comments
# e617801f 21-Jan-2020 Damon Lee <Damon.Lee@data61.csiro.au>

trivial: Update licenses

These files were changed significantly, so we update the license to
reflect this.


# 18fff6b0 21-Jan-2020 Damon Lee <Damon.Lee@data61.csiro.au>

libplatsupport,zynq: Remove all timer HW constants

We no longer need these constants as we can now read them from the DTB.


# 15eead5d 21-Jan-2020 Damon Lee <Damon.Lee@data61.csiro.au>

libplatsupport,zynq: Move HW timer ops to driver

Timer resource allocation and the management of interrupts should belong
in the driver level. This commit moves these operations from the ltimer
level down to the driver level for the ZYNQ platforms.


# ebfcbedd 25-Aug-2019 Damon Lee <Damon.Lee@data61.csiro.au>

zynq: Add timer comment stating zynq7000's quirks

This commit adds a comment to clarify the #ifdef guard for the
update_timestamp function for the zynq ltimer drivers.


# 7922d6b3 02-Aug-2019 Chris Guikema <chris.guikema@dornerworks.com>

zynqmp: Allow 32-bit free-running clock

The current zynq machine code assumes a 16-bit counter, which is only
true for the zynq7000. The zynqmp has a 32-bit counter. The timestamp
timer would stop functioning on the zynqmp after it overflowed. This
commit handles the overflow properly on the zynqmp.


# 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.


# 19aaf1a8 26-Mar-2019 Damon Lee <Damon.Lee@data61.csiro.au>

libplatsupport: Fix ZYNQ ltimer handle_irq() to return EINVAL correctly


# 0744ad96 13-Feb-2019 Kent McLeod <Kent.Mcleod@data61.csiro.au>

platsupport: remove static init in ltimers

The regular init functions can be used with an implementation of
ps_io_ops_t that is a static implementation


# 77524e03 07-Nov-2018 Adam Felizzi <Adam.Felizzi@data61.csiro.au>

platsupport/zynq: Implemented ltimer_static_init

Created an ltimer static init function. This allows the user
to pass in a pre-mapped vaddr for the timer device.


# 76f6c58f 07-Nov-2018 Adam Felizzi <Adam.Felizzi@data61.csiro.au>

platsupport/zynq: Refactored ltimer_default_init

Split up the ltimer_default_init implementation into
multiple functions. This makes the initialisation implementation
more modular for different ltimer initialisation functions.


# 74a05d90 06-Dec-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Add 64-bit timestamps + abs timeouts for zynq

- handle interrupts from timer2
- configurer timer2 as free running
- handle overflow irqs from timer2
- use time read from timer2 to set up absolute timeouts


# 1e28b1a1 21-Jul-2017 Nathan Studer <nathan.studer@dornerworks.com>

Re-arrange Zynq7000 platform files to make a Zynq7000 machine