Oracle® Solaris 11.2 デバイスドライバの記述

印刷ビューの終了

更新: 2014 年 9 月
 
 

pci.conf ファイル

このセクションでは、pci.conf ファイル、その使用方法、および構文について説明します。

説明

pci.conf が導入された目的は、システム上の特定の PF (物理機能) の VF (仮想機能) の数など、PCI 構成を保存することです。このファイルの目的はいくつかあります。

  • ブート時に VF を自動的に作成できるように PCI 構成を持続させること。

  • この構成ファイルは boot_archive の一部になっているため、ブート中に VF を使用できます。

VF が基本的なシステム上で使用される場合、このファイルは非 IOV システム構成でも使用されます。現在のところ、これに含まれるのは VF に関する構成だけです。将来は、PCI バス固有のその他の構成や、デバイス固有の回避方法さえも、これに含まれるようになる可能性があります。VF 数の構成は次のように、「[System_Configuration]」セクションに保存されます。

[System_Configuration]
[[path=<pf_device_path>]]
num-vf=<num_of_vf>

システム構成セクション

このファイルの [System_Configuration] セクションは、Oracle Solaris PCIe フレームワークによって解釈されます。認識されないキーワードにはエラーのフラグが付けられます。[System_Configuration] セクションは、ファイル全体で 1 つだけ存在し、ファイルの先頭に存在している必要があります。

[System_Configuration] セクションは一連のサブセクションから構成されます。各サブセクションには、一意のテキストラベルが 1 つと、そのあとに、対象デバイスに一致する二重角括弧で囲まれたフィルタのリストが含まれている必要があります。各サブセクションの内容は、一致したデバイスのそれぞれに対してフレームワークが実行するアクションのリストです。次に例を示します。

[System_Configuration]
     new_e1kg_driver [[id=0x8086,0x1000,,0x108e,]] [[classcode=0x020000]]
     num-vf=4

二重括弧内のフィルタは、デバイス ID 0x1000、Sun のサブシステムベンダー ID、およびネットワークコントローラクラスコードを持つ、システム内のすべての Intel デバイスに一致します。Oracle Solaris はデバイスの VF 数を 4 に設定します。


注 - フィルタ内でデバイスパスを使用すれば、フィルタのスコープを単一のデバイスインスタンスに絞り込むことができます。

デバイス構成セクション

[Device_Configuration] セクションも [System_Configuration] セクションと同じタイプのサブセクションから構成されますが、その内容を解釈するのはフィルタに一致したデバイスのドライバだけであるという違いがあります。

Device Configuration]
     # label must be file-globally unique
     igbe-sriov-test [[path=/pci@0,0/network@2]]
     # number of rx/tx ring pairs for each VF
     dma-channel-distribution=2,2,8,4

構文

/etc/pci.conf = <system section><device section>
<system section> = "[System_Configuration]" {<framework subsection>}*
<device section> = "[Device_Configuration]" {<device subsection>}*
<framework subsection> = <label> [ {filter>}* ]
[ {<framework action>}+ ]
<device subsection> = <label> [ {<filter>}+* ] <devicenvlist>
<filter> = [ "[[" "id" "=" (vendorid>) "," (<deviceid>) "," (<revisionid>) "," (<subsystem-vendorid>) "," (<subsystemid>)"]]"] 
| ["[[" "classcode" "=" <classcode> (,<mask>) "]]" ] | [ "[[" "path"
"=" ,devpath> "]]"]
<framework action> = [ "num-vf" "=" <val>]
<deice nvlist> = [ {name string> "=" <value string>} +]

参考資料

pci_param_get(9F)も参照してください。