summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/hpet.4 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/hpet.4 3.html')
-rw-r--r--static/freebsd/man4/hpet.4 3.html90
1 files changed, 90 insertions, 0 deletions
diff --git a/static/freebsd/man4/hpet.4 3.html b/static/freebsd/man4/hpet.4 3.html
new file mode 100644
index 00000000..f3988d55
--- /dev/null
+++ b/static/freebsd/man4/hpet.4 3.html
@@ -0,0 +1,90 @@
+<table class="head">
+ <tr>
+ <td class="head-ltitle">HPET(4)</td>
+ <td class="head-vol">Device Drivers Manual</td>
+ <td class="head-rtitle">HPET(4)</td>
+ </tr>
+</table>
+<div class="manual-text">
+<section class="Sh">
+<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
+<p class="Pp"><code class="Nm">hpet</code> &#x2014; <span class="Nd">High
+ Precision Event Timer driver</span></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
+<p class="Pp">To compile this driver into the kernel, place the following lines
+ in your kernel configuration file:</p>
+<div class="Bd Pp Bd-indent"><code class="Cd">device acpi</code></div>
+<p class="Pp">The following tunables are settable from the
+ <a class="Xr">loader(8)</a>:</p>
+<dl class="Bl-ohang">
+ <dt id="hint.hpet."><var class="Va">hint.hpet.</var><var class="Ar">X</var><var class="Va">.allowed_irqs</var></dt>
+ <dd>is a 32bit mask. Each set bit allows driver to use respective IRQ, if BIOS
+ also set respective capability bit in comparator's configuration register.
+ Default value is 0xffff0000, except some known broken hardware.</dd>
+ <dt id="hint.hpet.~2"><var class="Va">hint.hpet.</var><var class="Ar">X</var><var class="Va">.clock</var></dt>
+ <dd>controls event timers functionality support. Setting to 0, disables it.
+ Default value is 1.</dd>
+ <dt id="hint.hpet.~3"><var class="Va">hint.hpet.</var><var class="Ar">X</var><var class="Va">.legacy_route</var></dt>
+ <dd>controls &quot;LegacyReplacement Route&quot; mode. If enabled, HPET will
+ steal IRQ0 of i8254 timer and IRQ8 of RTC. Before using it, make sure that
+ respective drivers are not using interrupts, by setting also:
+ <div class="Bd Pp Li">
+ <pre>hint.attimer.0.clock=0
+hint.atrtc.0.clock=0</pre>
+ </div>
+ Default value is 0.</dd>
+ <dt id="hint.hpet.~4"><var class="Va">hint.hpet.</var><var class="Ar">X</var><var class="Va">.per_cpu</var></dt>
+ <dd>controls how much per-CPU event timers should driver attempt to register.
+ This functionality requires every comparator in a group to have own
+ unshared IRQ, so it depends on hardware capabilities and interrupts
+ configuration. Default value is 1.</dd>
+</dl>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
+<p class="Pp">This driver uses High Precision Event Timer hardware (part of the
+ chipset, usually enumerated via ACPI) to supply kernel with one time counter
+ and several (usually from 3 to 8) event timers. This hardware includes
+ single main counter with known increment frequency (10MHz or more), and
+ several programmable comparators (optionally with automatic reload feature).
+ When value of the main counter matches current value of any comparator,
+ interrupt can be generated. Depending on hardware capabilities and
+ configuration, interrupt can be delivered as regular I/O APIC interrupt (ISA
+ or PCI) in range from 0 to 31, or as Front Side Bus interrupt, alike to PCI
+ MSI interrupts, or in so called &quot;LegacyReplacement Route&quot; HPET can
+ steal IRQ0 of i8254 and IRQ8 of the RTC. Interrupt can be either edge- or
+ level-triggered. In last case they could be safely shared with PCI IRQs.
+ Driver prefers to use FSB interrupts, if supported, to avoid sharing. If it
+ is not possible, it uses single sharable IRQ from PCI range. Other modes
+ (LegacyReplacement and ISA IRQs) require special care to setup, but could be
+ configured manually via device hints.</p>
+<p class="Pp">Event timers provided by the driver support both one-shot an
+ periodic modes and irrelevant to CPU power states.</p>
+<p class="Pp">Depending on hardware capabilities and configuration, driver can
+ expose each comparator as separate event timer or group them into one or
+ several per-CPU event timers. In last case interrupt of every of those
+ comparators within group is bound to specific CPU core. This is possible
+ only when each of these comparators has own unsharable IRQ.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
+ ALSO</a></h1>
+<p class="Pp"><a class="Xr">acpi(4)</a>, <a class="Xr">apic(4)</a>,
+ <a class="Xr">atrtc(4)</a>, <a class="Xr">attimer(4)</a>,
+ <a class="Xr">eventtimers(4)</a>, <a class="Xr">timecounters(4)</a></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
+<p class="Pp">The <code class="Nm">hpet</code> driver first appeared in
+ <span class="Ux">FreeBSD 6.3</span>. Support for event timers was added in
+ <span class="Ux">FreeBSD 9.0</span>.</p>
+</section>
+</div>
+<table class="foot">
+ <tr>
+ <td class="foot-date">September 14, 2010</td>
+ <td class="foot-os">FreeBSD 15.0</td>
+ </tr>
+</table>