cfgadm_shp - cfgadm の PCI Express および標準 PCI ホットプラグ対応ハードウェア固有のコマンド
/usr/sbin/cfgadm [-f] [-y | -n] [-v] [-o hardware_options] -c function ap_id [ap_id]
/usr/sbin/cfgadm [-f] [-y | -n] [-v] [-o hardware_options] -x hardware_function ap_id [ap_id]
/usr/sbin/cfgadm [-v] [-s listing_options] [-o hardware_options] -x hardware_function ap_id [ap_id]
/usr/sbin/cfgadm [-v] [-o hardware_options] -tap_id [ap_id]
/usr/sbin/cfgadm [-v] [-o hardware_function]-h [ap_id | ap_type]
PCI Express および標準 PCI ホットプラグ対応ハードウェア固有のライブラリ /usr/lib/cfgadm/shp.so.1 は、cfgadm コマンド (cfgadm(1M) を参照) による、ホットプラグ対応システム内の個々のホットプラグ対応スロットに対する、PCI Express および標準 PCI ホットプラグ対応アダプタカードのホットプラグ操作をサポートします。その他の PCI ホットプラグ対応アダプタカード (PCI Express および標準 PCI ホットプラグ対応カード以外) のサポートは、cfgadm_pci ライブラリ (cfgadm_pci(1M) を参照) によって提供されます。ホットプラグ管理モデルは、このマニュアルページに示されている点を除き、PCI Express ホットプラグおよび標準 PCI ホットプラグで同じです。
PCI ホットプラグの場合、特定の PCI バス上の各ホットプラグスロットは、その PCI バスの接続点によって表されます。
接続点は、受容体と占有装置の 2 つの部分で構成されます。通常、PCI ホットプラグにおける受容体は、物理ホットプラグ対応スロットと見なされ、占有装置は、スロットに接続される PCI アダプタカードと見なされます。
接続点には、ap_id によって名前が付けられます。ap_id には論理、物理の 2 種類があります。物理 ap_id は、次の例のように物理パス名に基づいています。
/devices/pci@7c,0/pci10de,5d@d:pcie2
一方、論理 ap_id は、pcie2 などの、より短く、ユーザーにわかりやすい名前です。ホットプラグ PCI の ap_type は pci です。
ap_type は、Type フィールドの情報と同じではない点に注意してください。
それ自体は PCI Express デバイスではない接続点を含め、PCI Express 階層内に存在する (つまり、親または祖先が PCI Express デバイスである) 接続点では、次に示す名付けスキームが使用されます。
文法:
基本項です。
ここで、fru-id は、slot-id が含まれているシャーシの FRU を示します (ある場合)。
ここで、fru-type は、PCI Express 拡張シャーシの「iob」であり、その後にそのシリアル番号 serialid# が続きます (取得できる場合)。
ここで、slot-name は、プラットフォームまたはハードウェア自体によって割り当てられる名前です。device-type は、PCI Express デバイスを示す pcie または PCI デバイスを示す pci です。nexus-driver-name はデバイスコンポーネントのドライバ名であり、physical-slot# はハードウェアスロット番号、pci-device-number は標準 PCI 用語における PCI デバイス番号です。
まず、absolute-slot-path が構成されます。absolute-slot-path は、接続点の位相上の位置を、ユーザーがより物理的に認識できる用語で表します。この absolute-slot-path は、それぞれ : (コロン) で区切られた slot-path コンポーネントで構成されます。リーフまたは左端の slot-path コンポーネントは、接続点自体のデバイスを表し、右端または最上位の slot-path コンポーネントまでのその右隣の slot-path コンポーネントは、ルートデバイスまでの親をそれぞれ表します。
各 slot-path は、slot-id で構成されます。場合によっては、slot-id の前に、slot-id によって表されるデバイスが含まれている拡張シャーシを識別する fru-id が示されます (後述します)。fru-id は、fru-type とそれに続くオプションの serialid# で構成されます。fru-type は、PCI Express 拡張シャーシタイプの「iob」であり、serialid# は、拡張シャーシハードウェアから取得される生のシリアル番号を示す 64 ビット 16 進数値か、Sun ブランドの拡張シャーシの場合は、大文字の 4 つの ASCII 文字シーケンスです。
各 slot-id は、次の 3 つのうちのいずれかの形式で構成されます。
slot-names
device-type physical-slot#
nexus-driver-name nexus-driver-instance device-type pci-device-number
選択される形式の優先順位は、形式番号の小さいものから大きなものの順、つまり、上記の上から下の順です。ある形式を正常に構成できない場合は、次に数値の大きい形式が試されます。
slot-id 形式 (1) の slot-names は、デバイスツリー上の対応するノードの slot-names プロパティーから取得されます。これは、ハードウェアまたはプラットフォームによって割り当てられる名前です。この形式は、事前定義または確立されていません。
slot-id 形式 (2) では、device-type は、コンポーネントのスロットのデバイスタイプを示し、PCI Express を示す pcie または PCI を示す pci です。一方、対応するデバイスノードの physical-slot# プロパティーから取得される physical-slot# は、コンポーネントのハードウェアスロット番号を示します。
slot-id 形式 (3) が使用されるのは、ほかのすべての形式が正常に構成できないときであり、デフォルトの形式と見なされます。nexus-driver-name はコンポーネントのドライバ名、nexus-driver-instance はこのドライバのインスタンス、device-type は形式 (2) の説明と同じであり、pci-device-number は、説明されているとおり PCI デバイス番号であり、標準 PCI 用語におけるデバイス構成サイクルで使用されます。
サマリーすると、slot-path コンポーネントは、その前に示される可能性のあるオプションの FRU コンポーネントを拡張し、次のいずれかの形式で、この順で構成されます。
slot-names
device_type physical_slot#
nexus-driver-name nexus-driver-instance.
device_type pci-device-number
最後に、cfgadm で使用される実際の ap_id 名の最終的な形式は、次の優先順位で決定されます。
absolute-slot-path が cfgadm の ap_id フィールドの固定長制限内に収まる場合は、absolute-slot-path 自体が使用されます。
(absolute-slot-path が ap_id の長さ制限を超える場合) 最後の slot_path コンポーネントが拡張シャーシ内に含まれていて、その slot_path に serialid# が含まれている場合は、最後の slot_path コンポーネントが使用されます。この形式で serialid# が必須となるのは、グローバルに一意な ap_id にするためです。
(absolute-slot-path が ap_id の長さ制限を超える場合) 最後の slot_path コンポーネントのデフォルトの形式、slot-id 形式 (3) が使用されます。
どの最終的な ap_id 名が使用されても、absolute-slot-path は、–s オプションまたは –v オプションを使用して表示できる情報 (info) フィールドに格納されます。この情報を使用すると、ap_id 形式 (2) または ap_id 形式 (3) を使って名前が付けられた ap_id を物理的に見つけることができます。absolute-slot-path は、情報フィールドに格納されるときにわずかに変換されます。具体的には、コロン (:) がスラッシュ (/) に置き換えられ、位相上の文脈がより厳密に示されます。absolute-slot-path には、リーフまたは右端の slot-path コンポーネントよりも上位でオンボードホストスロットまでの間に、ホットプラグ対応でない slot-path コンポーネントを含めることができます。
ホットプラグ対応の例の一覧については、「例」のセクションを参照してください。
サポートしているオプションは、次のとおりです。
PCI ホットプラグ対応スロットでは、次の機能がサポートされています。
スロット上の PCI デバイスが Solaris で使用されるように構成します。
スロットを PCI バスに接続します。
PCI バスからスロットを切断します。
サポートされていません。
サポートされていません。
PCI デバイスのリソースをシステムから論理的に削除します。
サポートされていません。
PCI ホットプラグ固有のヘルプメッセージを表示します。
PCI ホットプラグスロットの値を一覧表示します。
現在定義されているハードウェア固有のオプションはありません。
汎用の cfgadm(1M) と同じです。
このコマンドは、スロットでテスト機能をサポートするプラットフォームでのみサポートされます。
詳細モードで実行します。
–v オプションを –l オプションとともに使用すると、cfgadm コマンドによって、接続点に関する情報が出力されます。PCI Express 階層内に存在する接続点の場合、情報フィールドに、接続点の絶対スロットパスの位置が示されます。これには、スロットパスに含まれる各コンポーネントのハードウェアまたはプラットフォーム固有のラベル情報が含まれます。スロットパスに含まれる各コンポーネントは、/ (スラッシュ) で区切られます。上記の「PCI Express の ap_id の命名」を参照してください。PCI Express 階層内に存在しない PCI ホットプラグの接続点については、cfgadm_pci(1M) を参照してください。Type フィールドの情報は、–v オプションを指定したかどうかにかかわらず出力されます。占有装置の Type フィールドは、スロットの内容を示します。次の 2 種類の値があります。
スロットは空です。スロットにカードが装着されている場合、カードが構成されていないか、カード上のデバイスのドライバがありません。
スロットに装着されているカードは、シングルファンクションデバイスまたはマルチファンクションデバイスです。
subclass は、デバイスのサブクラスコードを表す文字列であり、SCSI、ethernet、pci-isa などが示されます。カードがマルチファンクションデバイスである場合、代わりに MULT と表示されます。
board は、デバイスのボードタイプを表す文字列です。たとえば、hp は、PCI ホットプラグアダプタの場合に使用される文字列です。
ハードウェア固有の機能を実行します。通常は、これらのハードウェア固有の機能を使用して、受容体または占有装置の状態を変更しないでください。
次の hardware_function がサポートされています。
サブ引数を指定しない場合、現在の LED 設定の一覧が表示されます。サブ引数を指定した場合、スロットの特定の LED のモードが設定されます。
led_sub_arg は、fault、power、attn、または active に指定します。
mode_sub_arg は、on、off、または blink に指定します。
PCI Express の場合は、power および attn LED のみが有効であり、attn LED の状態のみを変更できます。
LED の状態を変更しても、受容体または占有装置の状態は変更されません。通常は、LED はホットプラグコントローラによって制御され、ユーザーの操作は不要です。このコマンドは、テストのために使用します。
注意 - LED の状態を変更すると、占有装置または受容体の状態が誤って示される場合があります。 |
次のコマンドは、LED の値を表示します。
example# cfgadm -x led pcie2 Ap_Id Led pcie2 power=on,fault=off,active=off,attn=off
次のコマンドは、attn LED が点滅してスロットの位置を示すように設定します。
example# cfgadm -x led=attn,mode=blink pcie2
次のコマンドは、各スロットの値を表示します。
example# cfgadm -l Ap_Id Type Receptacle Occupant Condition c0 scsi-bus connected configured unknown c1 scsi-bus connected unconfigured unknown c2 scsi-bus connected unconfigured unknown pcie7 etherne/hp connected configured ok pcie8 unknown empty unconfigured unknown pcie9 fibre/hp connected configured ok使用例 2 カードの交換
次のコマンドは、すべての DR 対応の接続点を一覧表示します。
example# cfgadm Type Receptacle Occupant Condition c0 scsi-bus connected configured unknown c1 scsi-bus connected unconfigured unknown c2 scsi-bus connected unconfigured unknown pcie7 etherne/hp connected configured ok pcie8 unknown empty unconfigured unknown pcie9 fibre/hp connected configured ok
次のコマンドは、pcie7 で識別されるカードを構成解除し、電気的に切断します。
example# cfgadm -c disconnect pcie7
次のコマンドを入力して変更を確認できます。
example# cfgadm pcie7 Ap_Id Type Receptacle Occupant Condition pcie7 unknown disconnected unconfigured unknown
この時点で、カードを交換できます。次のコマンドは、交換用カードを電気的に接続し、構成します。
example# cfgadm -c configure pcie7
次のコマンドを入力して変更を確認できます。
example# cfgadm pcie7 Ap_Id Type Receptacle Occupant Condition pcie7 etherne/hp connected configured ok使用例 3 PCI Express トポロジにおける ApId の解釈
次のコマンドは、ホストレベルでホットプラグ対応スロットに接続されている I/O 拡張シャーシ内に PCI Express および PCI 接続点の両方があるトポロジの一覧を示します。
example# cfgadm -s cols=ap_id:info Ap_Id Information iou#0-pci#0 Location: iou#0-pci#0 iou#0-pci#1 Location: iou#0-pci#1 iou#0-pci#1:iob.pci3 Location: iou#0-pci#1/iob.pci3 iou#0-pci#1:iob.pci4 Location: iou#0-pci#1/iob.pci4 iou#0-pci#2 Location: iou#0-pci#2 iou#0-pci#2:iob58071.pcie1 Location: iou#0-pci#2/iob58071.pcie1 iou#0-pci#2:iob58071.special Location: iou#0-pci#2/iob58071.special iou#0-pci#3 Location: iou#0-pci#3 iou#0-pci#3:iobBADF.pcie1 Location: iou#0-pci#3/iobBADF.pcie1 iou#0-pci#3:iobBADF.pcie2 Location: iou#0-pci#3/iobBADF.pcie2 iou#0-pci#3:iobBADF.pcie3 Location: iou#0-pci#3/iobBADF.pcie3 iou#0-pci#3:iobBADF.pci1 Location: iou#0-pci#3/iobBADF.pci1 iou#0-pci#3:iobBADF.pci2 Location: iou#0-pci#3/iobBADF.pci2
この例では、iou#0-pci#[0-3] エントリは、システム上の最上位のホットプラグ対応スロットを表しています。iou#n-pci#n の形式は、上記の文法の仕様のセクションで示されているいずれの形式とも一致しないため、このホットプラグトポロジの基本コンポーネントのこのような名前は、slot-names プロパティーを通じてプラットフォームから取得されたものであると推測できます。
前の出力に示されているスロットの説明を次に示します。
このスロットは空であるか、その占有装置が構成されていません。
このスロットには、2 つのホットプラグ対応スロット pci3 と pci4 がある拡張シャーシが含まれています。pci3 と pci4 は、その拡張シャーシ内に含まれている、それぞれ物理スロット番号 3 と 4 を持つ 2 つの PCI スロットを表しています。この例では、拡張シャーシにシリアル ID がないか、エクスポートされていません。
このスロットには、16 進数のシリアル ID 58071 を持つサードパーティーの拡張シャーシが含まれています。その拡張シャーシ内には、2 つのホットプラグ対応スロット pcie1 と special があります。pcie1 は、物理スロット番号 1 を持つ PCI Express スロットを表しています。スロット special には、プラットフォーム、ハードウェア、またはファームウェアから取得されたラベルがあります。
このスロットには、FRU 識別子 BADF を持つ Sun 拡張シャーシが含まれています。この拡張シャーシには、それぞれ物理スロット番号 1、2、および 3 を持つ 3 つの PCI Express スロット pcie1、pcie2、および pcie3 と、それぞれ物理スロット番号 1 および 2 を持つ 2 つの PCI スロット pci1 と pci2 が含まれています。
次のコマンドは、接続されたホットプラグ対応およびホットプラグ非対応のホストスロットがある I/O 拡張シャーシ内に PCI Express および PCI 接続点の両方があるトポロジの一覧を示します。
example# cfgadm -s cols=ap_id:info Ap_Id Information Slot1 Location: Slot1 Slot2:iob4ffa56.pcie1 Location: Slot2/iob4ffa56.pcie1 Slot2:iob4ffa56.pcie2 Location: Slot2/iob4ffa56.pcie2 Slot5:iob3901.pci1 Location: Slot2/iob3901.pci1 Slot5:iob3901.pci2 Location: Slot2/iob3901.pci2
この例では、ホストシステムには、ホットプラグ対応スロット Slot1 のみがあります。Slot2 および Slot5 は、cfgadm でそれ自体が接続点として表示されていないため、これらはホットプラグ対応でないと推測できます。ただし、Slot2 と Slot5 には、それぞれ、ホットプラグ対応スロットがあるサードパーティーの拡張シャーシが含まれています。
次のコマンドは、特定のデバイスプロパティーがない接続点があるトポロジの一覧を示します。
example# cfgadm -s cols=ap_id:info Ap_Id Information px_pci7.pcie0 Location: px_pci7.pcie0 px_pci11.pcie0 Location: px_pci11.pcie0 px_pci11.pcie0:iob.pcie1 Location: px_pci11.pcie0/iob.pcie1 px_pci11.pcie0:iob.pcie2 Location: px_pci11.pcie0/iob.pcie2 px_pci11.pcie0:iob.pcie3 Location: px_pci11.pcie0/iob.pcie3
この例では、ホストシステムに 2 つのホットプラグ対応スロット px_pci7.pcie0 と px_pci11.pcie0 が含まれています。ここでは、より優先度が高くわかりやすいほかの形式を構成するための十分な情報をフレームワークが取得できなかったため、absolute-slot-path 内の基本 slot-path コンポーネントの slot-id 形式 (3) (デフォルトの形式) が使用されています。
右から左に解釈すると、接続点 px_pci7.pcie0 は、nexus ドライバ px_pci、インスタンス 7 にバインドされた、PCI デバイス番号が 0 (同じ番号の物理スロット番号という意味はありません) の PCI Express スロットを表しています。同様に、接続点 px_pci11.pcie0 は、px_pci のドライバインスタンス 11 にバインドされた、PCI デバイス番号が 0 の PCI Express スロットを表しています。
px_pci11.pcie0 の下位には、シリアル ID のない、3 つのホットプラグ対応 PCI Express スロットを持つサードパーティーの拡張シャーシがあります。
次のコマンドは、ApId フィールドの長さ制限を超えている接続点のパスがあるトポロジの一覧を示します。
example# cfgadm -s cols=ap_id:info Ap_Id Information pcie4 Location: pcie4 pcie4:iobSUNW.pcie1 Location: pcie4/iobSUNW.pcie1 pcie4:iobSUNW.pcie2 Location: pcie4/iobSUNW.pcie2 iob8879c3f3.pci1 Location: pcie4/iobSUNW.pcie2/iob8879c3f3.pci1 iob8879c3f3.pci2 Location: pcie4/iobSUNW.pcie2/iob8879c3f3.pci2 iob8879c3f3.pci3 Location: pcie4/iobSUNW.pcie2/iob8879c3f3.pci3
この例では、ホストにホットプラグ対応スロット pcie4 のみが存在しています。pcie4 の下位には、FRU 識別子が SUNW の Sun 拡張シャーシが接続されています。その拡張シャーシの PCI Express スロット pcie2 (ApId pcie4:iobSUNW.pcie2) の下位には、3 つのホットプラグ対応 PCI スロットがある別の拡張シャーシが入れ子になっています。
次の absolute-slot-path 形式の長さが、
pcie4/iobSUNW.pcie2/iob8879c3f3.pci1...3
...ApId フィールドの長さ制限を超えており、リーフ slot-path コンポーネントがグローバルに一意であるため、absolute-slot-path 内のリーフ slot-path コンポーネントが最終的な ApId として使用される ap_id 形式 (2) が使用されています。
次のコマンドは、ApId フィールドの長さ制限を超えていて、(シリアル ID が見つからないなど) リーフ slot-id だけで一意に識別できるだけの十分な情報がない接続点のパスがあるトポロジの一覧を示します。
example# cfgadm -s cols=ap_id:info Ap_Id Information pcie4 Location: pcie4 pcie4:iob4567812345678.pcie3 Location: pcie4/iob4567812345678.pcie3 px_pci20.pcie0 Location: pcie4/iob4567812345678.pcie3/iob.pcie1 px_pci21.pcie0 Location: pcie4/iob4567812345678.pcie3/iob.pcie2
この例では、ホストにホットプラグ対応スロット pcie4 のみが存在しています。pcie4 の下位には、16 進数のシリアル ID が 4567812345678 のサードパーティーの拡張シャーシが接続されています。その拡張シャーシの PCI Express スロット pcie3 (ApId pcie4:iob4567812345678.pcie3) の下位には、シリアル ID がなく、2 つのホットプラグ対応 PCI Express スロットがある別のサードパーティーの拡張シャーシが入れ子になっています。
次の absolute-slot-path 形式の長さが、
pcie4/iob4567812345678.pcie3/iob.pcie1...2
ApId フィールドの長さ制限を超えており、リーフ slot-path コンポーネントがグローバルに一意ではないため、ap_id 形式 (3) が使用されています。ap_id 形式 (2) では、absolute-slot-path 内のリーフ slot-path コンポーネントの slot-id 形式 (3) (デフォルトの形式) が最終的な ApId として使用されます。
リーフコンポーネント .../iob.pcie1 のデフォルトの形式、つまり slot-id 形式 (3) は、px_pci のドライバインスタンス 20 にバインドされた、デバイス番号 0 の PCI Express スロットを表しています。同様に、リーフコンポーネント .../iob.pcie2 のデフォルトの形式は、px_pci のドライバインスタンス 21 にバインドされた、デバイス番号 0 の PCI Express スロットを表しています。
PCI Express および標準 PCI ホットプラグ操作のためのハードウェア固有のライブラリです。
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
|
cfgadm(1M)、cfgadm_pci(1M)、hotplugd(1M)、config_admin(3CFGADM)、libcfgadm(3LIB)、attributes(5)、smf(5)
cfgadm_shp ライブラリは、smf(5) によって、FMRI の下で管理される hotplug サービスに依存しています。
svc:/system/hotplug:default
cfgadm_shp ライブラリを適切に機能させるには、サービスを有効にする必要があります。詳細は、hotplugd(1M) を参照してください。