マニュアルページセク ション 1M: システム管理コマンド

印刷ビューの終了

更新: 2014 年 7 月
 
 

cfgadm_shp(1M)

名前

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_typepci です。

ap_type は、Type フィールドの情報と同じではない点に注意してください。

PCI Express の ap_id の命名

それ自体は PCI Express デバイスではない接続点を含め、PCI Express 階層内に存在する (つまり、親または祖先が PCI Express デバイスである) 接続点では、次に示す名付けスキームが使用されます。

文法:

APID : absolute-slot-path

基本項です。

absolute-slot-path : slot-path[:slot-path[:slotpath ...]]

ここで、fru-id は、slot-id が含まれているシャーシの FRU を示します (ある場合)。

fru-id : fru-type[serialid#]

ここで、fru-type は、PCI Express 拡張シャーシの「iob」であり、その後にそのシリアル番号 serialid# が続きます (取得できる場合)。

slot-id : slot-name | device-type physical-slot# | \
nexus-driver-name nexus-driver-instance.\
device-type pci-device-number

ここで、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-id 形式 (1)

slot-names

slot-id 形式 (2)

device-type physical-slot#

slot-id 形式 (3)

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 コンポーネントを拡張し、次のいずれかの形式で、この順で構成されます。

(1) [ iob[serialid#]. ]

slot-names

(2) [ iob[serialid#]. ]

device_type physical_slot#

(2) [ iob[serialid#]. ]

nexus-driver-name nexus-driver-instance.

device_type pci-device-number

最後に、cfgadm で使用される実際の ap_id 名の最終的な形式は、次の優先順位で決定されます。

ap_id 形式 (1)

absolute-slot-pathcfgadmap_id フィールドの固定長制限内に収まる場合は、absolute-slot-path 自体が使用されます。

ap_id 形式 (2)

(absolute-slot-pathap_id の長さ制限を超える場合) 最後の slot_path コンポーネントが拡張シャーシ内に含まれていて、その slot_path に serialid# が含まれている場合は、最後の slot_path コンポーネントが使用されます。この形式で serialid# が必須となるのは、グローバルに一意な ap_id にするためです。

ap_id 形式 (3)

(absolute-slot-pathap_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 コンポーネントを含めることができます。

ホットプラグ対応の例の一覧については、「例」のセクションを参照してください。

オプション

サポートしているオプションは、次のとおりです。

–c function

PCI ホットプラグ対応スロットでは、次の機能がサポートされています。

configure

スロット上の PCI デバイスが Solaris で使用されるように構成します。

connect

スロットを PCI バスに接続します。

disconnect

PCI バスからスロットを切断します。

insert

サポートされていません。

remove

サポートされていません。

unconfigure

PCI デバイスのリソースをシステムから論理的に削除します。

–f

サポートされていません。

–h ap_id | ap_type

PCI ホットプラグ固有のヘルプメッセージを表示します。

–l list

PCI ホットプラグスロットの値を一覧表示します。

–ohardware_options

現在定義されているハードウェア固有のオプションはありません。

–slisting_options

汎用の cfgadm(1M) と同じです。

–t ap_id

このコマンドは、スロットでテスト機能をサポートするプラットフォームでのみサポートされます。

–v

詳細モードで実行します。

–v オプションを –l オプションとともに使用すると、cfgadm コマンドによって、接続点に関する情報が出力されます。PCI Express 階層内に存在する接続点の場合、情報フィールドに、接続点の絶対スロットパスの位置が示されます。これには、スロットパスに含まれる各コンポーネントのハードウェアまたはプラットフォーム固有のラベル情報が含まれます。スロットパスに含まれる各コンポーネントは、/ (スラッシュ) で区切られます。上記の「PCI Express の ap_id の命名」を参照してください。PCI Express 階層内に存在しない PCI ホットプラグの接続点については、cfgadm_pci(1M) を参照してください。Type フィールドの情報は、–v オプションを指定したかどうかにかかわらず出力されます。占有装置の Type フィールドは、スロットの内容を示します。次の 2 種類の値があります。

unknown

スロットは空です。スロットにカードが装着されている場合、カードが構成されていないか、カード上のデバイスのドライバがありません。

subclass/board

スロットに装着されているカードは、シングルファンクションデバイスまたはマルチファンクションデバイスです。

subclass は、デバイスのサブクラスコードを表す文字列であり、SCSIethernetpci-isa などが示されます。カードがマルチファンクションデバイスである場合、代わりに MULT と表示されます。

board は、デバイスのボードタイプを表す文字列です。たとえば、hp は、PCI ホットプラグアダプタの場合に使用される文字列です。

–xhardware_function

ハードウェア固有の機能を実行します。通常は、これらのハードウェア固有の機能を使用して、受容体または占有装置の状態を変更しないでください。

次の hardware_function がサポートされています。

led=[led_sub_arg],mode=[mode_sub_arg]

サブ引数を指定しない場合、現在の LED 設定の一覧が表示されます。サブ引数を指定した場合、スロットの特定の LED のモードが設定されます。

led_sub_arg は、faultpowerattn、または active に指定します。

mode_sub_arg は、onoff、または blink に指定します。

PCI Express の場合は、power および attn LED のみが有効であり、attn LED の状態のみを変更できます。

LED の状態を変更しても、受容体または占有装置の状態は変更されません。通常は、LED はホットプラグコントローラによって制御され、ユーザーの操作は不要です。このコマンドは、テストのために使用します。


Caution

注意  - 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

使用例 1 各スロットの値の表示

次のコマンドは、各スロットの値を表示します。

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 プロパティーを通じてプラットフォームから取得されたものであると推測できます。

前の出力に示されているスロットの説明を次に示します。

スロット iou#0-pci#0

このスロットは空であるか、その占有装置が構成されていません。

スロット iou#0-pci#1

このスロットには、2 つのホットプラグ対応スロット pci3pci4 がある拡張シャーシが含まれています。pci3pci4 は、その拡張シャーシ内に含まれている、それぞれ物理スロット番号 3 4 を持つ 2 つの PCI スロットを表しています。この例では、拡張シャーシにシリアル ID がないか、エクスポートされていません。

スロット iou#0-pci#2

このスロットには、16 進数のシリアル ID 58071 を持つサードパーティーの拡張シャーシが含まれています。その拡張シャーシ内には、2 つのホットプラグ対応スロット pcie1special があります。pcie1 は、物理スロット番号 1 を持つ PCI Express スロットを表しています。スロット special には、プラットフォーム、ハードウェア、またはファームウェアから取得されたラベルがあります。

スロット iou#0-pci#3

このスロットには、FRU 識別子 BADF を持つ Sun 拡張シャーシが含まれています。この拡張シャーシには、それぞれ物理スロット番号 12、および 3 を持つ 3 つの PCI Express スロット pcie1pcie2、および pcie3 と、それぞれ物理スロット番号 1 および 2 を持つ 2 つの PCI スロット pci1pci2 が含まれています。

次のコマンドは、接続されたホットプラグ対応およびホットプラグ非対応のホストスロットがある 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 でそれ自体が接続点として表示されていないため、これらはホットプラグ対応でないと推測できます。ただし、Slot2Slot5 には、それぞれ、ホットプラグ対応スロットがあるサードパーティーの拡張シャーシが含まれています。

次のコマンドは、特定のデバイスプロパティーがない接続点があるトポロジの一覧を示します。

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.pcie0px_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 スロットを表しています。

ファイル

/usr/lib/cfgadm/shp.so.1

PCI Express および標準 PCI ホットプラグ操作のためのハードウェア固有のライブラリです。

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
system/library
インタフェースの安定性
不確実

関連項目

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) を参照してください。