brintos

brintos / linux-shallow public Read only

0
0
Text · 1.5 KiB · c9d05d3 Raw
31 lines · plain
1===========================================2High Precision Event Timer Driver for Linux3===========================================4 5The High Precision Event Timer (HPET) hardware follows a specification6by Intel and Microsoft, revision 1.7 8Each HPET has one fixed-rate counter (at 10+ MHz, hence "High Precision")9and up to 32 comparators.  Normally three or more comparators are provided,10each of which can generate oneshot interrupts and at least one of which has11additional hardware to support periodic interrupts.  The comparators are12also called "timers", which can be misleading since usually timers are13independent of each other ... these share a counter, complicating resets.14 15HPET devices can support two interrupt routing modes.  In one mode, the16comparators are additional interrupt sources with no particular system17role.  Many x86 BIOS writers don't route HPET interrupts at all, which18prevents use of that mode.  They support the other "legacy replacement"19mode where the first two comparators block interrupts from 8254 timers20and from the RTC.21 22The driver supports detection of HPET driver allocation and initialization23of the HPET before the driver module_init routine is called.  This enables24platform code which uses timer 0 or 1 as the main timer to intercept HPET25initialization.  An example of this initialization can be found in26arch/x86/kernel/hpet.c.27 28The driver provides a userspace API which resembles the API found in the29RTC driver framework.  An example user space program is provided in30file:samples/timers/hpet_example.c31