ConnectX-3が届いたので、動作確認含めてwin10上でカードの認識と簡単なセットアップを実施。
セットアップに使ったwin10には事前に、ConnectX-3とwin10をサポートしているOFED(WinOF)とMFTをインストール済み。
##ConnectX-3の動作確認
入手したConnectX-3カードをPCIスロットに差して、デバイスマネージャーで無事に認識したので、カードのプロパティを確認する。
プロパティーでは
- ファームウェア: 2.10.700
となっているので、古すぎるファームウェアを更新する。
##状態の確認
デバイスとしては認識しているので、最初にHCAのファームウェアバージョンの確認を兼ねてWinMFTコマンドでHCAの情報をもう少し収集する。
C:\>cd "\Program Files\Mellanox\WinMFT"
C:\Program Files\Mellanox\WinMFT>mst status -v
MST devices:
------------
mt4099_pci_cr0 bus:dev.fn=01:00.0
mt4099_pciconf0 bus:dev.fn=01:00.0
C:\Program Files\Mellanox\WinMFT>flint -d mt4099_pci_cr0 query
Image type: FS2
FW Version: 2.10.0700
Device ID: 4099
Description: Node Port1 Port2 Sys image
GUIDs: 0002c903001a0da0 0002c903001a0da1 0002c903001a0da2 0002c903001a0da3
MACs: 0002c91a0da0 0002c91a0da1
VSD:
PSID: FJT1060100019
C:\Program Files\Mellanox\WinMFT>
MST device情報はConnectX-3(mt4099)と認識していることを確認。
ファームウェアバージョンは、2.10.0700ということで相当古い...(う~む)
PSIDはFJTで始まるので、富士通のOEM品と確認。これは注文時に理解していたことなので問題なし。
もう少し情報を取りたいので、mlxconfigで設定内容を確認してみたら
C:\Program Files\Mellanox\WinMFT>mlxconfig -d mt4099_pci_cr0 query
-E- Failed to open device: mt4099_pci_cr0. Unsupported FW (version 2.31.5000 or above required for CX3/PRO)
とファームが古すぎるからmlxconfigコマンドをサポートしていない模様
##ファームウェアダウンロード
富士通のOEM品なので、富士通のサポートサイトからファームウェアを入手。
HCAの動作確認をしているのはwin10なのだけど直近のターゲットはwin2008R2なので、OSがサポートしているファームウェアのバージョンを入手
IB HCAカード(56Gb)(PY-HC301/302) ファームウェア アップデートツール V2.34.5000
から、1世代古いファームウェアを入手したら、適当なフォルダを作成してそこでexeファイルを実行する。
C:\Program Files\Mellanox\WinMFT\cx3>cd 2.34.5000
C:\Program Files\Mellanox\WinMFT\cx3\2.34.5000>.\F1020874.exe
Arcmanager(SLC 32) Self-Extractor V01L09
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
234500F1.bin
: done.
234500F2.bin
: done.
IB_cx3f2345000.iso
: done.
ファームウェアアップデート手順書.pdf
: done.
C:\Program Files\Mellanox\WinMFT\cx3\2.34.5000>
ConnectX-3用の最後のファームウェアは、V2.42.5000だが、富士通OEMカード向けのファームウェアは以下の富士通のサポートページから入手可能。
IB HCAカード(56Gb)(PY-HC301/302) ファームウェア アップデートツール V2.42.5000
探した範囲では、今回、適用しているV2.34.5000の他に
IB HCAカード(56Gb)(PY-HC301/302) ファームウェア アップデートツール V2.36.5000
が提供されている。(リンク先ページからダウンロード可能)
win2008R2に対応しているV2.40.5030を探しているが見つかっていない。
##ファームウェア更新
(念のため)動いているファームウェアと設定ファイルのバックアップを取得しておく。
C:\Program Files\Mellanox\WinMFT\cx3\2.34.5000>..\..\flint -d mt4099_pci_cr0 ri org_fw.bin
C:\Program Files\Mellanox\WinMFT\cx3\2.34.5000>..\..\flint -d mt4099_pci_cr0 dc org_fw.ini
C:\Program Files\Mellanox\WinMFT\cx3\2.34.5000>
ダウンロードしたファームウェアに問題無いか確認する。
C:\Program Files\Mellanox\WinMFT\cx3\2.34.5000>..\..\flint -i 234500F1.bin verify
FS2 failsafe image. Start address: 0x0. Chunk size 0x80000:
NOTE: The addresses below are contiguous logical addresses. Physical addresses on
flash may be different, based on the image start address and chunk size
/0x00000038-0x0000065b (0x000624)/ (BOOT2) - OK
/0x0000065c-0x00002adb (0x002480)/ (BOOT2) - OK
/0x00002adc-0x00003a5b (0x000f80)/ (Configuration) - OK
/0x00003a5c-0x00003a9f (0x000044)/ (GUID) - OK
/0x00003aa0-0x00003c0b (0x00016c)/ (Image Info) - OK
/0x00003c0c-0x00010b0f (0x00cf04)/ (DDR) - OK
/0x00010b10-0x00011b63 (0x001054)/ (DDR) - OK
/0x00011b64-0x00011f33 (0x0003d0)/ (DDR) - OK
/0x00011f34-0x0004eb6b (0x03cc38)/ (DDR) - OK
/0x0004eb6c-0x00054093 (0x005528)/ (DDR) - OK
/0x00054094-0x00058927 (0x004894)/ (DDR) - OK
/0x00058928-0x0005941f (0x000af8)/ (DDR) - OK
/0x00059420-0x0008b993 (0x032574)/ (DDR) - OK
/0x0008b994-0x0008f53f (0x003bac)/ (DDR) - OK
/0x0008f540-0x000a3e43 (0x014904)/ (DDR) - OK
/0x000a3e44-0x000a3f4b (0x000108)/ (DDR) - OK
/0x000a3f4c-0x000ae47f (0x00a534)/ (DDR) - OK
/0x000ae480-0x000afc63 (0x0017e4)/ (Configuration) - OK
/0x000afc64-0x000afcd7 (0x000074)/ (Jump addresses) - OK
/0x000afcd8-0x000b0547 (0x000870)/ (FW Configuration) - OK
/0x00000000-0x000b0547 (0x0b0548)/ (Full Image) - OK
-I- FW image verification succeeded. Image is bootable.
C:\Program Files\Mellanox\WinMFT\cx3\2.34.5000>
問題無いようなので、このファームに更新する。
C:\Program Files\Mellanox\WinMFT\cx3\2.34.5000>..\..\flint -d mt4099_pci_cr0 -i 234500F1.bin burn
Current FW version on flash: 2.10.0700
New FW version: 2.34.5000
Burning FS2 FW image without signatures - OK
Restoring signature - OK
C:\Program Files\Mellanox\WinMFT\cx3\2.34.5000>
2.10.0700から2.34.5000へ更新出来たので、一度、リブートする。
##ファームウェア更新の確認
再起動後、ConnectX-3の状態を確認
デバイスマネージャーで2.34.5000に更新されていることを確認。
WinMFTコマンドで再度確認
C:\Program Files\Mellanox\WinMFT>.\flint -d mt4099_pci_cr0 query
Image type: FS2
FW Version: 2.34.5000
FW Release Date: 12.5.2015
Product Version: 02.34.50.00
Device ID: 4099
Description: Node Port1 Port2 Sys image
GUIDs: 0002c903001a0da0 0002c903001a0da1 0002c903001a0da2 0002c903001a0da3
MACs: 0002c91a0da0 0002c91a0da1
VSD:
PSID: FJT1060100019
C:\Program Files\Mellanox\WinMFT>
C:\Program Files\Mellanox\WinMFT>.\mlxconfig -d mt4099_pci_cr0 query
Device #1:
----------
Device type: ConnectX3
Device: mt4099_pci_cr0
Configurations: Next Boot
SRIOV_EN False(0)
NUM_OF_VFS 8
LINK_TYPE_P1 VPI(3)
LINK_TYPE_P2 VPI(3)
LOG_BAR_SIZE 3
BOOT_OPTION_ROM_EN_P1 True(1)
BOOT_VLAN_EN_P1 False(0)
BOOT_RETRY_CNT_P1 0
LEGACY_BOOT_PROTOCOL_P1 PXE(1)
BOOT_VLAN_P1 1
BOOT_OPTION_ROM_EN_P2 True(1)
BOOT_VLAN_EN_P2 False(0)
BOOT_RETRY_CNT_P2 0
LEGACY_BOOT_PROTOCOL_P2 PXE(1)
BOOT_VLAN_P2 1
C:\Program Files\Mellanox\WinMFT>
ファームウェアが更新されたことを確認できた。また、古いファームではエラーとなっていたmlxconfigコマンドも正常に動作し、既存の設定値を確認出来た。
##SR-IOVの設定
mlxconfigコマンドで設定を確認したが、SR-IOVがFalse(無効)になっていたので、これをmlxconfigコマンドを使って有効にする。
C:\Program Files\Mellanox\WinMFT>.\mlxconfig -d mt4099_pci_cr0 query
Device #1:
----------
Device type: ConnectX3
Device: mt4099_pci_cr0
Configurations: Next Boot
SRIOV_EN False(0)
NUM_OF_VFS 8
LINK_TYPE_P1 VPI(3)
LINK_TYPE_P2 VPI(3)
LOG_BAR_SIZE 3
BOOT_OPTION_ROM_EN_P1 True(1)
BOOT_VLAN_EN_P1 False(0)
BOOT_RETRY_CNT_P1 0
LEGACY_BOOT_PROTOCOL_P1 PXE(1)
BOOT_VLAN_P1 1
BOOT_OPTION_ROM_EN_P2 True(1)
BOOT_VLAN_EN_P2 False(0)
BOOT_RETRY_CNT_P2 0
LEGACY_BOOT_PROTOCOL_P2 PXE(1)
BOOT_VLAN_P2 1
C:\Program Files\Mellanox\WinMFT>
C:\Program Files\Mellanox\WinMFT>.\mlxconfig -d mt4099_pci_cr0 set SRIOV_EN=1
Device #1:
----------
Device type: ConnectX3
Device: mt4099_pci_cr0
Configurations: Next Boot New
SRIOV_EN False(0) True(1)
Apply new Configuration? (y/n) [n] : y
Applying... Done!
-I- Please reboot machine to load new configurations.
C:\Program Files\Mellanox\WinMFT>
再起動後に新しい設定が読み込まれるとのことなので、もう一度リブートする。
##SR-IOVの確認
起動後、設定状態を(再度)mlxconfigコマンドでSR-IOVが有効になっていることを確認する。
C:\Program Files\Mellanox\WinMFT>.\mlxconfig -d mt4099_pci_cr0 query
Device #1:
----------
Device type: ConnectX3
Device: mt4099_pci_cr0
Configurations: Next Boot
SRIOV_EN True(1)
NUM_OF_VFS 8
LINK_TYPE_P1 VPI(3)
LINK_TYPE_P2 VPI(3)
LOG_BAR_SIZE 3
BOOT_OPTION_ROM_EN_P1 True(1)
BOOT_VLAN_EN_P1 False(0)
BOOT_RETRY_CNT_P1 0
LEGACY_BOOT_PROTOCOL_P1 PXE(1)
BOOT_VLAN_P1 1
BOOT_OPTION_ROM_EN_P2 True(1)
BOOT_VLAN_EN_P2 False(0)
BOOT_RETRY_CNT_P2 0
LEGACY_BOOT_PROTOCOL_P2 PXE(1)
BOOT_VLAN_P2 1
C:\Program Files\Mellanox\WinMFT>
SRIOV_ENがTrue(1)になっているので、SR-IOVが有効になっていることを確認できた。NUM_OF_VFSは8になっているので、HCAでのVFSの最大は8個となっている。これは実装されているメモリの制限を受ける(と思う)が、増やす必要があれば、mlxconfigコマンドでSRIOV_ENと同様に設定変更が可能。
##OFEDコマンドでHCAの状態を確認(オプション)
HCAとしての動作は問題なさそうなので、OFEDコマンドでHCAの状態を(メモ的に)確認&記録しておく。
C:\Program Files\Mellanox\MLNX_VPI\IB\Tools>ibv_devinfo.exe
hca_id: ibv_device0
fw_ver: 2.34.5000
node_guid: 0002:c903:001a:0da0
sys_image_guid: 0002:c903:001a:0da3
vendor_id: 0x02c9
vendor_part_id: 4099
hw_ver: 0x0
phys_port_cnt: 1
port: 1
state: PORT_DOWN (1)
max_mtu: 4096 (5)
active_mtu: 4096 (5)
sm_lid: 0
port_lid: 0
port_lmc: 0x00
transport: IB
C:\Program Files\Mellanox\MLNX_VPI\IB\Tools>
C:\Program Files\Mellanox\MLNX_VPI\IB\Tools>vstat.exe
hca_idx=0
uplink={BUS=PCI_E Gen3, SPEED=8.0 Gbps, WIDTH=x8, CAPS=8.0*x8}
MSI-X={ENABLED=1, SUPPORTED=128, GRANTED=4, ALL_MASKED=N}
vendor_id=0x02c9
vendor_part_id=4099
hw_ver=0x0
fw_ver=2.34.5000
PSID=FJT1060100019
node_guid=0002:c903:001a:0da0
num_phys_ports=1
port=1
port_guid=0002:c903:001a:0da1
port_state=PORT_DOWN (1)
link_speed=NA
link_width=NA
rate=NA
port_phys_state=POLLING (2)
active_speed=10.00 Gbps
sm_lid=0x0000
port_lid=0x0000
port_lmc=0x0
transport=IB
max_mtu=4096 (5)
active_mtu=4096 (5)
GID[0]=fe80:0000:0000:0000:0002:c903:001a:0da1
C:\Program Files\Mellanox\MLNX_VPI\IB\Tools>
C:\Program Files\Mellanox\MLNX_VPI\IB\Tools>iblinkinfo.exe
CA: PROD:
0x0002c903001a0da1 0 1[ ] ==( Down/ Polling)==> [ ] "" ( )
C:\Program Files\Mellanox\MLNX_VPI\IB\Tools>
C:\Program Files\Mellanox\MLNX_VPI\IB\Tools>ibstat.exe
CA 'ibv_device0'
CA type:
Number of ports: 1
Firmware version: 2.34.5000
Hardware version: 0x0
Node GUID: 0x0002c903001a0da0
System image GUID: 0x0002c903001a0da3
Port 1:
State: Down
Physical state: Polling
Rate: 40
Base lid: 0
LMC: 0
SM lid: 0
Capability mask: 0x90580000
Port GUID: 0x0002c903001a0da1
Link layer: IB
Transport: IB
C:\Program Files\Mellanox\MLNX_VPI\IB\Tools>
MLNXのshow系コマンドで問題無く情報を取得出来ているので、HCAとしては問題なさそう、また、vstatコマンドでPCIe 3.0 x8となっていることも確認出来た。
ConnectX-3は、OEMでも余り苦労することなく利用可能そう。(2020/08)
既にConnectX-3 VPIはサポート外となっているので、必要なファームウェアやOFEDを確保しておく方が良さそう。(誰かがアーカイブしてくれていそうな気がするが...)