EN JA
HPET(4)
HPET(4) FreeBSD Kernel Interfaces Manual HPET(4)

名称

hpet高精度イベントタイマドライバ

書式

このドライバをカーネルにコンパイルするためには、次の行を利用者のカーネル設定ファイルに置きます:

device acpi

次の調整変数は、 loader(8) から設定可能です:

hint.hpet. X .allowed_irqs
これは、32 ビットのマスクです。各設定ビットによって、ドライバは、BIOS が比較器の設定レジスタの個別のケーパビリティのビットも設定するなら、それぞれの IRQ を使用することができます。デフォルト値は、いくつかの知られている壊れたハードウェアを除いて、 0xffff0000 です。
hint.hpet. X .clock
イベントタイマ機能のサポートを制御します。 0 に設定して、それを無効にします。デフォルト値は、1 です。
hint.hpet. X .legacy_route
"LegacyReplacement Route"モードを制御します。有効にされるなら、HPET は、i8254 タイマの IRQ0 と RTC の IRQ8 を横取りします。それを使用する前に、それぞれのドライバが設定することによって割り込みを使用していないことを確かめます:

hint.attimer.0.clock=0 
hint.atrtc.0.clock=0

デフォルト値は、0 です。

hint.hpet. X .per_cpu
CPU 毎のイベントタイマがどのくらいのドライバの登録する試みをするべきかを制御します。この機能は、独自の共有されない IRQ を持つためにグループであらゆる比較器を必要とするので、ハードウェアのケーパビリティと割り込み設定に依存します。デフォルト値は、1 です。

解説

このドライバは、1 つの時間カウンタといくつかの (通常 3 から 8 までの) イベントタイマをあるカーネルに供給するために高精度イベントタイマ (High Precision Event Timer) ハードウェア (通常、ACPI を通して列挙されるチップセットの一部) を使用します。このハードウェアは、知られている増分の周波数 (10MHz 以上) と (オプションで自動再ロード機能がある) いくつかのプログラマブル比較器がある単一のメインカウンタを含んでいます。メインカウンタの値が任意の比較器の現在の値にマッチするとき、割り込みを生成できます。ハードウェアケイパビリティと設定によって、 0 から 31 までの範囲の正規の I/O APIC 割り込み (ISA または PCI) として、または PCI MSI 割り込みに似ている、Front Side Bus 割り込みとして、割り込みを配信することができるか、またはいわゆる "LegacyReplacement Route"で HPET は、i8254 の IRQ0 と RTC の IRQ8 を盗むことができます。割り込みは、どちらのエッジでトリガされるか、またはレベルでトリガされることができます。最後の場合に、それらを、安全に PCI IRQ で共有できました。ドライバは、サポートされているなら、共有することを避けるために FSB 割り込みを使用することを好みます。可能でないなら、PCI 範囲から単一の共有可能な IRQ を使用します。他のモード (LegacyReplacement と ISA IRQ) は、セットアップするために特別な注意を必要としますが、デバイスヒントを通して手動で設定できるでしょう。

ドライバによって提供されたイベントタイマは、ともに 1 回限の周期モードをサポートし、CPU 電源状態と無関係です。

ハードウェアケイパビリティと設定によって、ドライバは、別々のイベントタイマとして各比較器を公開するか、またはそれらを 1 つ以上の CPU 毎のイベントタイマに分類することができます。最後の場合に、グループ内のそれらの比較器のあらゆる割り込みは、特定の CPU コアに結び付けられます。これは、これらの比較器のそれぞれに、独自の共有不可能な IRQ があるときのみ、可能です。

歴史

hpet ドライバは、 FreeBSD 6.3 ではじめて登場しました。イベントタイマのサポートは、 FreeBSD 9.0 で追加されました。
September 14, 2010 FreeBSD