~ubuntu-branches/ubuntu/precise/linux-lowlatency/precise

« back to all changes in this revision

Viewing changes to Documentation/timers/hpet.txt

  • Committer: Package Import Robot
  • Author(s): Alessio Igor Bogani
  • Date: 2011-10-26 11:13:05 UTC
  • Revision ID: package-import@ubuntu.com-20111026111305-tz023xykf0i6eosh
Tags: upstream-3.2.0
ImportĀ upstreamĀ versionĀ 3.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
                High Precision Event Timer Driver for Linux
 
2
 
 
3
The High Precision Event Timer (HPET) hardware follows a specification
 
4
by Intel and Microsoft which can be found at
 
5
 
 
6
        http://www.intel.com/hardwaredesign/hpetspec_1.pdf
 
7
 
 
8
Each HPET has one fixed-rate counter (at 10+ MHz, hence "High Precision")
 
9
and up to 32 comparators.  Normally three or more comparators are provided,
 
10
each of which can generate oneshot interrupts and at least one of which has
 
11
additional hardware to support periodic interrupts.  The comparators are
 
12
also called "timers", which can be misleading since usually timers are
 
13
independent of each other ... these share a counter, complicating resets.
 
14
 
 
15
HPET devices can support two interrupt routing modes.  In one mode, the
 
16
comparators are additional interrupt sources with no particular system
 
17
role.  Many x86 BIOS writers don't route HPET interrupts at all, which
 
18
prevents use of that mode.  They support the other "legacy replacement"
 
19
mode where the first two comparators block interrupts from 8254 timers
 
20
and from the RTC.
 
21
 
 
22
The driver supports detection of HPET driver allocation and initialization
 
23
of the HPET before the driver module_init routine is called.  This enables
 
24
platform code which uses timer 0 or 1 as the main timer to intercept HPET
 
25
initialization.  An example of this initialization can be found in
 
26
arch/x86/kernel/hpet.c.
 
27
 
 
28
The driver provides a userspace API which resembles the API found in the
 
29
RTC driver framework.  An example user space program is provided in
 
30
file:Documentation/timers/hpet_example.c