History log of /haiku/src/system/kernel/arch/arm/arch_timer.cpp
Revision Date Author Comments
# fe2b6d77 09-Aug-2022 David Karoly <karolyd577@gmail.com>

arm: detect SoC timer from FDT for OMAP3 and PXA

Change-Id: Ib03a11f016cb937d748d2696a17158e17c86e317
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5522
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: David Karoly <karolyd577@gmail.com>


# bdce546c 30-Jul-2022 David Karoly <karolyd577@gmail.com>

kernel/arm: implement generic timer

Change-Id: I5edb7e36013d5e5d9d45ec3cf31014f99601a4c6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5519
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>


# d5bac4fd 20-Oct-2021 David Karoly <karolyd577@gmail.com>

kernel/arch/arm: fix build - comment out fdt stuff as it's completely broken now

Change-Id: I8c0c5da0a915969176afea9e0e2cc2f831a18d59
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4619
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# aa3083e0 29-Jan-2017 Freeman Lou <freemanlou2430@yahoo.com>

Style fixes to various parts of the system.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

This patch was never applied after GSoC 2012. Rebase the parts that
still apply so we can close the ticket.

Fixes #9490.


# a52dd58d 31-Oct-2014 Ithamar R. Adema <ithamar@upgrade-android.com>

ARM: kernel: introduce SoC abstraction

This introduces InterruptController and HardwareTimer classes to
handle the SoC specific implementations of timers and ints for
the ARM platform.

These could be improved and moved to a more 'generic' level once
we're confident they are 'good enough'.

NOTE: The OMAP timer implementation is fully untested and probably
completely non-functional....


# 34ed0fe7 17-Sep-2013 Ithamar R. Adema <ithamar@upgrade-android.com>

ARM: kernel: fix system_time() when being called too early.


# ba06f076 16-Sep-2013 Ithamar R. Adema <ithamar@upgrade-android.com>

ARM: kernel: fix timer resolution and implement basic timekeeping.

The previously used method for programming the timer did not take
into account that our timespec is 64bit while the register we poke
it into is 32 bit. Since the PXA (SoC in Verdex target) has a limited
scale of resolution (us,ms,second) we dynamicly determine the one
that we can most closely match, and set that.

For f.ex. snooze to work however, we also need system_time to work.
The current implementation uses a system timer at microsecond
resolution to keep track of time.

Although the code is far from perfect, committing it now before
it gets lost, since I'm working on the infrastructure code
to properly factor out the SoC specific code out of the core
ARM architecture code (so the kernel can support more then
our poor old Verdex QEMU target ;))


# af1c0b55 16-Sep-2013 Ithamar R. Adema <ithamar@upgrade-android.com>

ARM: kernel: fix timer resolution and implement basic timekeeping.

The previously used method for programming the timer did not take
into account that our timespec is 64bit while the register we poke
it into is 32 bit. Since the PXA (SoC in Verdex target) has a limited
scale of resolution (us,ms,second) we dynamicly determine the one
that we can most closely match, and set that.

For f.ex. snooze to work however, we also need system_time to work.
The current implementation uses a system timer at microsecond
resolution to keep track of time.

Although the code is far from perfect, committing it now before
it gets lost, since I'm working on the infrastructure code
to properly factor out the SoC specific code out of the core
ARM architecture code (so the kernel can support more then
our poor old Verdex QEMU target ;))


# f86b5828 06-Nov-2012 Ithamar R. Adema <ithamar@upgrade-android.com>

ARM: Cleanup of port support code.

This also implements the fault handler correctly now, and cleans up the
exception handling. Seems a lot more stable now, no unexpected panics or
faults happening anymore.


# be7195d0 04-Nov-2012 Ithamar R. Adema <ithamar@upgrade-android.com>

ARM: add initial timer support.

Currently hardcoded to PXA (verdex) support, needs SoC abstraction
for seperating implementations, best done using FDT code as committed
by Francois.


# 258d4ef9 26-Apr-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

kernel arm: Quick style cleanup; No functional change


# 23eafdaf 13-Aug-2009 François Revol <revol@free.fr>

[GSoC] [ARM] Patch by Johannes Wischert.
- stubbed out many arch kernel functions (borrowed from other archs),
- partially implement ELF relocations code, enough to load the kernel,
- move uart.c to kernel sources and use the same one for the loader,
- default implementation for gensyscalls,
- assembler code functions for interrupt masking (enable/disable/restore/query).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32327 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a52dd58d2da9adad93ad49b33181da57849c8ad5 31-Oct-2014 Ithamar R. Adema <ithamar@upgrade-android.com>

ARM: kernel: introduce SoC abstraction

This introduces InterruptController and HardwareTimer classes to
handle the SoC specific implementations of timers and ints for
the ARM platform.

These could be improved and moved to a more 'generic' level once
we're confident they are 'good enough'.

NOTE: The OMAP timer implementation is fully untested and probably
completely non-functional....


# 34ed0fe74aa9d8b0b432ee165000ab04c97f3dcf 17-Sep-2013 Ithamar R. Adema <ithamar@upgrade-android.com>

ARM: kernel: fix system_time() when being called too early.


# ba06f0766073168cc42458c6327f6703de21943f 16-Sep-2013 Ithamar R. Adema <ithamar@upgrade-android.com>

ARM: kernel: fix timer resolution and implement basic timekeeping.

The previously used method for programming the timer did not take
into account that our timespec is 64bit while the register we poke
it into is 32 bit. Since the PXA (SoC in Verdex target) has a limited
scale of resolution (us,ms,second) we dynamicly determine the one
that we can most closely match, and set that.

For f.ex. snooze to work however, we also need system_time to work.
The current implementation uses a system timer at microsecond
resolution to keep track of time.

Although the code is far from perfect, committing it now before
it gets lost, since I'm working on the infrastructure code
to properly factor out the SoC specific code out of the core
ARM architecture code (so the kernel can support more then
our poor old Verdex QEMU target ;))


# af1c0b55ca4c6303ce2c2d8789442421ddda2bc8 16-Sep-2013 Ithamar R. Adema <ithamar@upgrade-android.com>

ARM: kernel: fix timer resolution and implement basic timekeeping.

The previously used method for programming the timer did not take
into account that our timespec is 64bit while the register we poke
it into is 32 bit. Since the PXA (SoC in Verdex target) has a limited
scale of resolution (us,ms,second) we dynamicly determine the one
that we can most closely match, and set that.

For f.ex. snooze to work however, we also need system_time to work.
The current implementation uses a system timer at microsecond
resolution to keep track of time.

Although the code is far from perfect, committing it now before
it gets lost, since I'm working on the infrastructure code
to properly factor out the SoC specific code out of the core
ARM architecture code (so the kernel can support more then
our poor old Verdex QEMU target ;))


# f86b5828486b661145eb15952ec14648c9bb8d9b 06-Nov-2012 Ithamar R. Adema <ithamar@upgrade-android.com>

ARM: Cleanup of port support code.

This also implements the fault handler correctly now, and cleans up the
exception handling. Seems a lot more stable now, no unexpected panics or
faults happening anymore.


# be7195d0f79a82a419cc06e4fc5b40e5dccf36a2 04-Nov-2012 Ithamar R. Adema <ithamar@upgrade-android.com>

ARM: add initial timer support.

Currently hardcoded to PXA (verdex) support, needs SoC abstraction
for seperating implementations, best done using FDT code as committed
by Francois.


# 258d4ef93d3f51cef60b05d1c5ae418108b55782 26-Apr-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

kernel arm: Quick style cleanup; No functional change


# 23eafdaf313f2e756170f6a543205311a4d9bc96 13-Aug-2009 François Revol <revol@free.fr>

[GSoC] [ARM] Patch by Johannes Wischert.
- stubbed out many arch kernel functions (borrowed from other archs),
- partially implement ELF relocations code, enough to load the kernel,
- move uart.c to kernel sources and use the same one for the loader,
- default implementation for gensyscalls,
- assembler code functions for interrupt masking (enable/disable/restore/query).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32327 a95241bf-73f2-0310-859d-f6bbb57e9c96