summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/apic.4 3.html
blob: 25426ae0bd8075dcfd2745833b870f0a8a73fff3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<table class="head">
  <tr>
    <td class="head-ltitle">APIC(4)</td>
    <td class="head-vol">Device Drivers Manual</td>
    <td class="head-rtitle">APIC(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">apic</code> &#x2014; <span class="Nd">Advanced
    Programmable Interrupt Controller (APIC) driver</span></p>
</section>
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<p class="Pp">This driver is a mandatory part of amd64 kernel. To compile this
    driver into i386 kernel, place the following line in your kernel
    configuration file:</p>
<div class="Bd Pp Bd-indent"><code class="Cd">device apic</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.apic."><var class="Va">hint.apic.</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.apic.~2"><var class="Va">hint.apic.</var><var class="Ar">X</var><var class="Va">.disabled</var></dt>
  <dd>Set this to 1 to disable APIC support, falling back to the legacy
    PIC.</dd>
</dl>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
<p class="Pp">There are two components in the Intel APIC system, the local APIC
    (LAPIC) and the I/O APIC. There is one local APIC in each CPU in the system.
    There is typically one I/O APIC for each peripheral bus in the system.</p>
<p class="Pp">Local APICs manage all external interrupts for a specific
    processor. In addition, they are able to accept and generate inter-processor
    interrupts (IPIs).</p>
<p class="Pp">I/O APICs contain a redirection table, which is used to route the
    interrupts they receive from peripheral buses to one or more local
  APICs.</p>
<p class="Pp">Each local APIC includes one 32-bit programmable timer. This
    driver uses them to supply kernel with one event timer named
    &quot;LAPIC&quot;. Event timer provided by the driver supports both one-shot
    and periodic modes. Because of local APIC nature it is per-CPU. The timer
    frequency is not reported by the platform and so automatically measured by
    the driver on the first use. Depending on CPU model this timer may stop in
    C3 and deeper CPU sleep states. Driver automatically adjusts event timer
    priority and reports it to prevent entering dangerous sleep states when it
    is used.</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">atrtc(4)</a>, <a class="Xr">attimer(4)</a>,
    <a class="Xr">eventtimers(4)</a>, <a class="Xr">hpet(4)</a></p>
</section>
</div>
<table class="foot">
  <tr>
    <td class="foot-date">June 19, 2020</td>
    <td class="foot-os">FreeBSD 15.0</td>
  </tr>
</table>